brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · ced288f Raw
49 lines · plain
1// RUN: cir-opt %s -cir-flatten-cfg -o - | FileCheck %s2 3!s32i = !cir.int<s, 32>4 5module {6  cir.func @foo(%arg0: !s32i) -> !s32i {7    %4 = cir.cast int_to_bool %arg0 : !s32i -> !cir.bool8    cir.if %4 {9      %5 = cir.const #cir.int<1> : !s32i10      cir.return %5 : !s32i11    } else {12      %5 = cir.const #cir.int<0> : !s32i13      cir.return %5 : !s32i14    }15    cir.return %arg0 : !s32i16  }17//      CHECK: cir.func{{.*}} @foo(%arg0: !s32i) -> !s32i {18// CHECK-NEXT:   %0 = cir.cast int_to_bool %arg0 : !s32i -> !cir.bool19// CHECK-NEXT:   cir.brcond %0 ^bb1, ^bb220// CHECK-NEXT: ^bb1:  // pred: ^bb021// CHECK-NEXT:   %1 = cir.const #cir.int<1> : !s32i22// CHECK-NEXT:   cir.return %1 : !s32i23// CHECK-NEXT: ^bb2:  // pred: ^bb024// CHECK-NEXT:   %2 = cir.const #cir.int<0> : !s32i25// CHECK-NEXT:   cir.return %2 : !s32i26// CHECK-NEXT: ^bb3:  // no predecessors27// CHECK-NEXT:   cir.return %arg0 : !s32i28// CHECK-NEXT: }29 30  cir.func @onlyIf(%arg0: !s32i) -> !s32i {31    %4 = cir.cast int_to_bool %arg0 : !s32i -> !cir.bool32    cir.if %4 {33      %5 = cir.const #cir.int<1> : !s32i34      cir.return %5 : !s32i35    }36    cir.return %arg0 : !s32i37  }38//      CHECK: cir.func{{.*}} @onlyIf(%arg0: !s32i) -> !s32i {39// CHECK-NEXT:   %0 = cir.cast int_to_bool %arg0 : !s32i -> !cir.bool40// CHECK-NEXT:   cir.brcond %0 ^bb1, ^bb241// CHECK-NEXT: ^bb1:  // pred: ^bb042// CHECK-NEXT:   %1 = cir.const #cir.int<1> : !s32i43// CHECK-NEXT:   cir.return %1 : !s32i44// CHECK-NEXT: ^bb2:  // pred: ^bb045// CHECK-NEXT:   cir.return %arg0 : !s32i46// CHECK-NEXT: }47 48}49