brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 14f9383 Raw
70 lines · plain
1// Test hlfir.transpose operation parse, verify (no errors), and unparse2 3// RUN: fir-opt %s | fir-opt | FileCheck %s4 5// square matrix of known shape6func.func @transpose0(%arg0: !hlfir.expr<2x2xi32>) {7  %res = hlfir.transpose %arg0 : (!hlfir.expr<2x2xi32>) -> !hlfir.expr<2x2xi32>8  return9}10// CHECK-LABEL: func.func @transpose011// CHECK:           %[[ARG0:.*]]: !hlfir.expr<2x2xi32>12// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!hlfir.expr<2x2xi32>) -> !hlfir.expr<2x2xi32>13// CHECK-NEXT:    return14// CHECK-NEXT:  }15 16// rectangular matrix of known shape17func.func @transpose1(%arg0: !hlfir.expr<2x3xi32>) {18  %res = hlfir.transpose %arg0 : (!hlfir.expr<2x3xi32>) -> !hlfir.expr<3x2xi32>19  return20}21// CHECK-LABEL: func.func @transpose122// CHECK:           %[[ARG0:.*]]: !hlfir.expr<2x3xi32>23// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!hlfir.expr<2x3xi32>) -> !hlfir.expr<3x2xi32>24// CHECK-NEXT:    return25// CHECK-NEXT:  }26 27// matrix of assumed shape28func.func @transpose2(%arg0: !hlfir.expr<?x?xi32>) {29  %res = hlfir.transpose %arg0 : (!hlfir.expr<?x?xi32>) -> !hlfir.expr<?x?xi32>30  return31}32// CHECK-LABEL: func.func @transpose233// CHECK:           %[[ARG0:.*]]: !hlfir.expr<?x?xi32>34// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!hlfir.expr<?x?xi32>) -> !hlfir.expr<?x?xi32>35// CHECK-NEXT:    return36// CHECK-NEXT:  }37 38// matrix where only some dimensions are known #139func.func @transpose3(%arg0: !hlfir.expr<?x2xi32>) {40  %res = hlfir.transpose %arg0 : (!hlfir.expr<?x2xi32>) -> !hlfir.expr<2x?xi32>41  return42}43// CHECK-LABEL: func.func @transpose344// CHECK:           %[[ARG0:.*]]: !hlfir.expr<?x2xi32>45// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!hlfir.expr<?x2xi32>) -> !hlfir.expr<2x?xi32>46// CHECK-NEXT:    return47// CHECK-NEXT:  }48 49// matrix where only some dimensions are known #250func.func @transpose4(%arg0: !hlfir.expr<2x?xi32>) {51  %res = hlfir.transpose %arg0 : (!hlfir.expr<2x?xi32>) -> !hlfir.expr<?x2xi32>52  return53}54// CHECK-LABEL: func.func @transpose455// CHECK:           %[[ARG0:.*]]: !hlfir.expr<2x?xi32>56// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!hlfir.expr<2x?xi32>) -> !hlfir.expr<?x2xi32>57// CHECK-NEXT:    return58// CHECK-NEXT:  }59 60// matrix is a boxed array61func.func @transpose5(%arg0: !fir.box<!fir.array<1x2xi32>>) {62  %res = hlfir.transpose %arg0 : (!fir.box<!fir.array<1x2xi32>>) -> !hlfir.expr<2x1xi32>63  return64}65// CHECK-LABEL: func.func @transpose566// CHECK:           %[[ARG0:.*]]: !fir.box<!fir.array<1x2xi32>>67// CHECK-NEXT:    %[[RES:.*]] = hlfir.transpose %[[ARG0]] : (!fir.box<!fir.array<1x2xi32>>) -> !hlfir.expr<2x1xi32>68// CHECK-NEXT:    return69// CHECK-NEXT:  }70