1; RUN: llc -march=amdgcn -verify-machineinstrs < %s | FileCheck -check-prefix=GCN %s
2
3; GCN-LABEL: {{^}}test_dont_clobber_scc:
4
5; GCN: ; %entry
6; GCN:      s_cmp_eq_u32    s0, 0
7; GCN:      s_cbranch_scc1  [[EXIT:BB[0-9_]+]]
8
9; GCN: ; %blocka
10; GCN:      s_cmp_eq_u32    s1, 0
11; GCN:      s_cbranch_scc1  [[PREEXIT:BB[0-9_]+]]
12
13; GCN: [[PREEXIT]]:
14; GCN: [[EXIT]]:
15
16define amdgpu_vs float @test_dont_clobber_scc(i32 inreg %uni, i32 inreg %uni2) #0 {
17entry:
18  %cc.uni = icmp eq i32 %uni, 0
19  br i1 %cc.uni, label %exit, label %blocka
20
21blocka:
22  call void asm sideeffect "; dummy a", ""()
23  %cc.uni2 = icmp eq i32 %uni2, 0
24  br i1 %cc.uni2, label %exit, label %blockb
25
26blockb:
27  call void asm sideeffect "; dummy b", ""()
28  br label %exit
29
30exit:
31  %cc.phi = phi i1 [ true, %entry ], [ false, %blocka ], [ false, %blockb ]
32  call void asm sideeffect "; dummy exit", ""()
33  %r = select i1 %cc.phi, float 1.0, float 2.0
34  ret float %r
35}
36
37attributes #0 = { nounwind }
38