brintos

brintos / llvm-project-archived public Read only

0
0
Text · 895 B · 247c6ae Raw
31 lines · plain
1// RUN: cir-translate -cir-to-llvmir --disable-cc-lowering -o %t.ll %s2// RUN: FileCheck --input-file=%t.ll -check-prefix=LLVM %s3 4!u32i = !cir.int<u, 32>5 6module  {7  cir.func @blue(%arg0: !cir.bool) -> !u32i {8    %0 = cir.ternary(%arg0, true {9      %a = cir.const #cir.int<0> : !u32i10      cir.yield %a : !u32i11    }, false {12      %b = cir.const #cir.int<1> : !u32i13      cir.yield %b : !u32i14    }) : (!cir.bool) -> !u32i15    cir.return %0 : !u32i16  }17}18 19// LLVM-LABEL: define i32 {{.*}}@blue(20// LLVM-SAME: i1 [[PRED:%[[:alnum:]]+]])21// LLVM:   br i1 [[PRED]], label %[[B1:[[:alnum:]]+]], label %[[B2:[[:alnum:]]+]]22// LLVM: [[B1]]:23// LLVM:   br label %[[M:[[:alnum:]]+]]24// LLVM: [[B2]]:25// LLVM:   br label %[[M]]26// LLVM: [[M]]:27// LLVM:   [[R:%[[:alnum:]]+]] = phi i32 [ 1, %[[B2]] ], [ 0, %[[B1]] ]28// LLVM:   br label %[[B3:[[:alnum:]]+]]29// LLVM: [[B3]]:30// LLVM:   ret i32 [[R]]31