diff options
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll')
| -rw-r--r-- | llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll b/llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll index 85e56a243cdc..9c59b4236cae 100644 --- a/llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll +++ b/llvm/test/CodeGen/AMDGPU/divergence-driven-buildvector.ll @@ -462,11 +462,19 @@ define i32 @divergent_vec_i16_LH(i16 %a, i32 %b) { ; GFX906-NEXT: v_bfi_b32 v0, s4, v0, v1 ; GFX906-NEXT: s_setpc_b64 s[30:31] ; -; GFX11-LABEL: divergent_vec_i16_LH: -; GFX11: ; %bb.0: -; GFX11-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GFX11-NEXT: v_bfi_b32 v0, 0xffff, v0, v1 -; GFX11-NEXT: s_setpc_b64 s[30:31] +; GFX11-TRUE16-LABEL: divergent_vec_i16_LH: +; GFX11-TRUE16: ; %bb.0: +; GFX11-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX11-TRUE16-NEXT: v_mov_b16_e32 v1.l, v0.l +; GFX11-TRUE16-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX11-TRUE16-NEXT: v_mov_b32_e32 v0, v1 +; GFX11-TRUE16-NEXT: s_setpc_b64 s[30:31] +; +; GFX11-FAKE16-LABEL: divergent_vec_i16_LH: +; GFX11-FAKE16: ; %bb.0: +; GFX11-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX11-FAKE16-NEXT: v_bfi_b32 v0, 0xffff, v0, v1 +; GFX11-FAKE16-NEXT: s_setpc_b64 s[30:31] %shift = lshr i32 %b, 16 %tr = trunc i32 %shift to i16 %tmp = insertelement <2 x i16> poison, i16 %a, i32 0 |
