From 31a1c90c39e8a4130647877d5d9d9a8dc1657e31 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Wed, 1 Mar 2017 03:36:04 +0000 Subject: [PATCH] AMDGPU: Re-do update for branch-relaxation test Modify the test so that it is still testing something closer to what it was intended to originally. I think the original intent was to test the situation where there was a branch on execz and then unconditional branch required relaxing.With the change in r296539, there was no longer and execz branch. Change the test so that there is now an execz branch inserted. There is no longer an unconditional branch after the execz branch, so this might need to be tricked in some other way to keep that there. llvm-svn: 296574 --- test/CodeGen/AMDGPU/branch-relaxation.ll | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/test/CodeGen/AMDGPU/branch-relaxation.ll b/test/CodeGen/AMDGPU/branch-relaxation.ll index 7ae2e996095..9d3afc2cbaa 100644 --- a/test/CodeGen/AMDGPU/branch-relaxation.ll +++ b/test/CodeGen/AMDGPU/branch-relaxation.ll @@ -430,8 +430,16 @@ endif: ; GCN-NEXT: s_and_saveexec_b64 [[MASK:s\[[0-9]+:[0-9]+\]]], vcc ; GCN-NEXT: s_xor_b64 [[MASK]], exec, [[MASK]] ; GCN-NEXT: ; mask branch [[RET:BB[0-9]+_[0-9]+]] +; GCN-NEXT: s_cbranch_execnz [[LOOP_BODY:BB[0-9]+_[0-9]+]] + +; GCN-NEXT: [[BRANCH_SKIP:BB[0-9]+_[0-9]+]]: ; %entry +; GCN-NEXT: s_getpc_b64 vcc +; GCN-NEXT: s_add_u32 vcc_lo, vcc_lo, [[RET]]-([[BRANCH_SKIP]]+4) +; GCN-NEXT: s_addc_u32 vcc_hi, vcc_hi, 0 +; GCN-NEXT: s_setpc_b64 vcc + +; GCN-NEXT: [[LOOP_BODY]]: ; %loop_body -; GCN-NEXT: [[LOOP_BODY:BB[0-9]+_[0-9]+]]: ; %loop_body ; GCN: ;;#ASMSTART ; GCN: v_nop_e64 ; GCN: v_nop_e64 @@ -448,11 +456,8 @@ endif: ; GCN-NEXT: s_subb_u32 vcc_hi, vcc_hi, 0 ; GCN-NEXT: s_setpc_b64 vcc -; GCN-NEXT: [[RET]]: +; GCN-NEXT: BB{{[0-9]+_[0-9]+}}: ; %ret ; GCN-NEXT: s_or_b64 exec, exec, [[MASK]] -; GCN-NEXT: s_mov_b32 s3, 0xf000 -; GCN-NEXT: s_mov_b32 s2, -1 -; GCN-NExt: v_mov_b32_e32 v0, 7 ; GCN: buffer_store_dword ; GCN-NEXT: s_endpgm define void @analyze_mask_branch() #0 { @@ -460,8 +465,14 @@ entry: %reg = call float asm sideeffect "v_mov_b32_e64 $0, 0", "=v"() %cmp0 = fcmp ogt float %reg, 0.000000e+00 br i1 %cmp0, label %loop, label %ret + loop: %phi = phi float [ 0.000000e+00, %loop_body ], [ 1.000000e+00, %entry ] + call void @llvm.amdgcn.s.sleep(i32 0) + call void @llvm.amdgcn.s.sleep(i32 0) + call void @llvm.amdgcn.s.sleep(i32 0) + call void @llvm.amdgcn.s.sleep(i32 0) + call void @llvm.amdgcn.s.sleep(i32 0) call void asm sideeffect "v_nop_e64 v_nop_e64", ""() #0