xref: /llvm-project/llvm/test/CodeGen/SPIRV/branching/if-non-merging.ll (revision 42633cf27bd2cfb44e9f332c33cfd6750b9d7be4)
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
2
3; CHECK-DAG: [[I32:%.+]] = OpTypeInt 32
4; CHECK-DAG: [[BOOL:%.+]] = OpTypeBool
5; CHECK-DAG: [[TRUE:%.+]] = OpConstantTrue
6; CHECK-DAG: [[FALSE:%.+]] = OpConstantFalse
7
8define i1 @test_if(i32 %a, i32 %b) {
9entry:
10  %cond = icmp eq i32 %a, %b
11  br i1 %cond, label %true_label, label %false_label
12true_label:
13  ret i1 true
14false_label:
15  ret i1 false
16}
17
18; CHECK: OpFunction
19; CHECK: [[A:%.+]] = OpFunctionParameter [[I32]]
20; CHECK: [[B:%.+]] = OpFunctionParameter [[I32]]
21; CHECK: [[ENTRY:%.+]] = OpLabel
22; CHECK: [[COND:%.+]] = OpIEqual [[BOOL]] [[A]] [[B]]
23; CHECK: OpBranchConditional [[COND]] [[TRUE_LABEL:%.+]] [[FALSE_LABEL:%.+]]
24
25; CHECK: [[FALSE_LABEL]] = OpLabel
26; CHECK: OpReturnValue [[FALSE]]
27
28; CHECK: [[TRUE_LABEL]] = OpLabel
29; CHECK: OpReturnValue [[TRUE]]
30