brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 9c76092 Raw
71 lines · plain
1// RUN: cir-opt %s -cir-flatten-cfg -o - | FileCheck %s2 3!s32i = !cir.int<s, 32>4 5module {6 7  cir.func @testFor(%arg0 : !cir.bool) {8    cir.for : cond {9      cir.condition(%arg0)10    } body {11      cir.yield12    } step {13      cir.yield14    }15    cir.return16  }17}18 19// CHECK:  cir.func{{.*}} @testFor(%arg0: !cir.bool) {20// CHECK:    cir.br ^bb[[#COND:]]21// CHECK:  ^bb[[#COND]]:22// CHECK:    cir.brcond %arg0 ^bb[[#BODY:]], ^bb[[#EXIT:]]23// CHECK:  ^bb[[#BODY]]:24// CHECK:    cir.br ^bb[[#STEP:]]25// CHECK:  ^bb[[#STEP]]:26// CHECK:    cir.br ^bb[[#COND:]]27// CHECK:  ^bb[[#EXIT]]:28// CHECK:    cir.return29// CHECK:  }30 31  // Test while cir.loop operation lowering.32  cir.func @testWhile(%arg0 : !cir.bool) {33    cir.while {34      cir.condition(%arg0)35    } do {36      cir.yield37    }38    cir.return39  }40 41// CHECK:  cir.func{{.*}} @testWhile(%arg0: !cir.bool) {42// CHECK:    cir.br ^bb[[#COND:]]43// CHECK:  ^bb[[#COND]]:44// CHECK:    cir.brcond %arg0 ^bb[[#BODY:]], ^bb[[#EXIT:]]45// CHECK:  ^bb[[#BODY]]:46// CHECK:    cir.br ^bb[[#COND:]]47// CHECK:  ^bb[[#EXIT]]:48// CHECK:    cir.return49// CHECK:  }50 51 52  // Test do-while cir.loop operation lowering.53  cir.func @testDoWhile(%arg0 : !cir.bool) {54    cir.do {55      cir.yield56    } while {57      cir.condition(%arg0)58    }59    cir.return60  }61 62// CHECK:  cir.func{{.*}} @testDoWhile(%arg0: !cir.bool) {63// CHECK:    cir.br ^bb[[#BODY:]]64// CHECK:  ^bb[[#COND]]:65// CHECK:    cir.brcond %arg0 ^bb[[#BODY:]], ^bb[[#EXIT:]]66// CHECK:  ^bb[[#BODY]]:67// CHECK:    cir.br ^bb[[#COND:]]68// CHECK:  ^bb[[#EXIT]]:69// CHECK:    cir.return70// CHECK:  }71