1*ae77acebSpvanhout; RUN: opt -mtriple amdgcn-- -passes='print<uniformity>' -disable-output %s 2>&1 | FileCheck %s 2*ae77acebSpvanhout 3*ae77acebSpvanhout; CHECK-LABEL: 'test1': 4*ae77acebSpvanhout; CHECK: DIVERGENT: i32 %bound 5*ae77acebSpvanhout; CHECK: {{^ *}} %counter = 6*ae77acebSpvanhout; CHECK: DIVERGENT: %break = icmp sge i32 %counter, %bound 7*ae77acebSpvanhout; CHECK: DIVERGENT: br i1 %break, label %footer, label %body 8*ae77acebSpvanhout; CHECK: {{^ *}}%counter.next = 9*ae77acebSpvanhout; CHECK: {{^ *}}%counter.footer = 10*ae77acebSpvanhout; CHECK: DIVERGENT: br i1 %break, label %end, label %header 11*ae77acebSpvanhout 12*ae77acebSpvanhout; Note: %counter is not divergent! 13*ae77acebSpvanhout 14*ae77acebSpvanhoutdefine amdgpu_ps void @test1(i32 %bound) { 15*ae77acebSpvanhoutentry: 16*ae77acebSpvanhout br label %header 17*ae77acebSpvanhout 18*ae77acebSpvanhoutheader: 19*ae77acebSpvanhout %counter = phi i32 [ 0, %entry ], [ %counter.footer, %footer ] 20*ae77acebSpvanhout %break = icmp sge i32 %counter, %bound 21*ae77acebSpvanhout br i1 %break, label %footer, label %body 22*ae77acebSpvanhout 23*ae77acebSpvanhoutbody: 24*ae77acebSpvanhout %counter.next = add i32 %counter, 1 25*ae77acebSpvanhout br label %footer 26*ae77acebSpvanhout 27*ae77acebSpvanhoutfooter: 28*ae77acebSpvanhout %counter.footer = phi i32 [ %counter.next, %body ], [ undef, %header ] 29*ae77acebSpvanhout br i1 %break, label %end, label %header 30*ae77acebSpvanhout 31*ae77acebSpvanhoutend: 32*ae77acebSpvanhout ret void 33*ae77acebSpvanhout} 34