xref: /llvm-project/llvm/test/CodeGen/SPIRV/block-ordering.ll (revision 0c07e7c211bed5e14372aebc2fc6edc16ecef8cb)
1; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK
2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}
3
4; Checks SPIR-V blocks are correctly reordered so that dominators shows up
5; before others in the binary layout.
6
7define void @main() {
8; CHECK: OpLabel
9; CHECK: OpBranch %[[#l1:]]
10
11; CHECK: %[[#l1]] = OpLabel
12; CHECK:            OpBranch %[[#l2:]]
13
14; CHECK: %[[#l2]] = OpLabel
15; CHECK:            OpBranch %[[#end:]]
16
17; CHECK: %[[#end]] = OpLabel
18; CHECK:             OpReturn
19entry:
20  br label %l1
21
22l2:
23  br label %end
24
25l1:
26  br label %l2
27
28end:
29  ret void
30}
31