[RISCV][VLOPT] Add vector narrowing integer right shift instructions to isSupportedIn...
[llvm-project.git] / flang / test / Fir / commute.fir
blob75338161d2d99c9f3d25f8c749b528cfe6aa68cf
1 // RUN: fir-opt %s | tco | FileCheck %s
3 // CHECK-LABEL: define i32 @f1(i32 %0, i32 %1)
4 func.func @f1(%a : i32, %b : i32) -> i32 {
6   // CHECK: %[[reg3:.*]] = add i32 %0, %1
7   %1 = arith.addi %a, %b : i32
8   %2 = arith.addi %b, %a : i32
9   // CHECK:  mul i32 %[[reg3]], %[[reg3]]
10   %3 = arith.muli %1, %2 : i32
11   return %3 : i32
14 // CHECK-LABEL: define i32 @f2(ptr nocapture %0)
15 func.func @f2(%a : !fir.ref<i32>) -> i32 {
16   %1 = fir.load %a : !fir.ref<i32>
17   // CHECK: %[[r2:.*]] = load
18   %2 = fir.load %a : !fir.ref<i32>
19   // CHECK: %[[r3:.*]] = add i32 %[[r2]], %[[r2]]
20   %3 = arith.addi %1, %2 : i32
21   %4 = fir.load %a : !fir.ref<i32>
22   // CHECK: %[[r4:.*]] = add i32 %[[r3]], %[[r2]]
23   %5 = arith.addi %3, %4 : i32
24   %6 = fir.load %a : !fir.ref<i32>
25   // CHECK: %[[r5:.*]] = add i32 %[[r4]], %[[r2]]
26   %7 = arith.addi %5, %6 : i32
27   %8 = fir.load %a : !fir.ref<i32>
28   // CHECK: %[[r6:.*]] = add i32 %[[r5]], %[[r2]]
29   %9 = arith.addi %7, %8 : i32
30   %10 = fir.load %a : !fir.ref<i32>
31   // CHECK: %[[r7:.*]] = add i32 %[[r2]], %[[r6]]
32   %11 = arith.addi %10, %9 : i32
33   return %11 : i32