Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/AMDGPU/widen-smrd-loads.ll
Show All 21 Lines | |||||
; VI-LABEL: widen_i16_constant_load: | ; VI-LABEL: widen_i16_constant_load: | ||||
; VI: ; %bb.0: | ; VI: ; %bb.0: | ||||
; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 | ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 | ||||
; VI-NEXT: v_mov_b32_e32 v0, 0 | ; VI-NEXT: v_mov_b32_e32 v0, 0 | ||||
; VI-NEXT: v_mov_b32_e32 v1, 0 | ; VI-NEXT: v_mov_b32_e32 v1, 0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_and_b32 s0, s0, 0xffff | |||||
; VI-NEXT: s_addk_i32 s0, 0x3e7 | ; VI-NEXT: s_addk_i32 s0, 0x3e7 | ||||
; VI-NEXT: s_or_b32 s0, s0, 4 | ; VI-NEXT: s_or_b32 s0, s0, 4 | ||||
; VI-NEXT: v_mov_b32_e32 v2, s0 | ; VI-NEXT: v_mov_b32_e32 v2, s0 | ||||
; VI-NEXT: flat_store_short v[0:1], v2 | ; VI-NEXT: flat_store_short v[0:1], v2 | ||||
; VI-NEXT: s_endpgm | ; VI-NEXT: s_endpgm | ||||
%load = load i16, i16 addrspace(4)* %arg, align 4 | %load = load i16, i16 addrspace(4)* %arg, align 4 | ||||
%add = add i16 %load, 999 | %add = add i16 %load, 999 | ||||
%or = or i16 %add, 4 | %or = or i16 %add, 4 | ||||
▲ Show 20 Lines • Show All 395 Lines • ▼ Show 20 Lines | |||||
; VI: ; %bb.0: | ; VI: ; %bb.0: | ||||
; VI-NEXT: s_load_dword s0, s[0:1], 0x24 | ; VI-NEXT: s_load_dword s0, s[0:1], 0x24 | ||||
; VI-NEXT: s_mov_b32 s1, 0 | ; VI-NEXT: s_mov_b32 s1, 0 | ||||
; VI-NEXT: v_mov_b32_e32 v0, 0 | ; VI-NEXT: v_mov_b32_e32 v0, 0 | ||||
; VI-NEXT: v_mov_b32_e32 v1, 0 | ; VI-NEXT: v_mov_b32_e32 v1, 0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_and_b32 s0, s0, 0xffff | |||||
; VI-NEXT: s_addk_i32 s0, 0x3e7 | ; VI-NEXT: s_addk_i32 s0, 0x3e7 | ||||
; VI-NEXT: s_or_b32 s0, s0, 4 | ; VI-NEXT: s_or_b32 s0, s0, 4 | ||||
; VI-NEXT: v_mov_b32_e32 v2, s0 | ; VI-NEXT: v_mov_b32_e32 v2, s0 | ||||
; VI-NEXT: flat_store_short v[0:1], v2 | ; VI-NEXT: flat_store_short v[0:1], v2 | ||||
; VI-NEXT: s_endpgm | ; VI-NEXT: s_endpgm | ||||
%load = load i16, i16 addrspace(6)* %arg, align 4 | %load = load i16, i16 addrspace(6)* %arg, align 4 | ||||
%add = add i16 %load, 999 | %add = add i16 %load, 999 | ||||
%or = or i16 %add, 4 | %or = or i16 %add, 4 | ||||
Show All 21 Lines | |||||
; VI-LABEL: widen_i16_global_invariant_load: | ; VI-LABEL: widen_i16_global_invariant_load: | ||||
; VI: ; %bb.0: | ; VI: ; %bb.0: | ||||
; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 | ; VI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x24 | ||||
; VI-NEXT: v_mov_b32_e32 v0, 0 | ; VI-NEXT: v_mov_b32_e32 v0, 0 | ||||
; VI-NEXT: v_mov_b32_e32 v1, 0 | ; VI-NEXT: v_mov_b32_e32 v1, 0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ; VI-NEXT: s_load_dword s0, s[0:1], 0x0 | ||||
; VI-NEXT: s_waitcnt lgkmcnt(0) | ; VI-NEXT: s_waitcnt lgkmcnt(0) | ||||
; VI-NEXT: s_and_b32 s0, s0, 0xffff | |||||
; VI-NEXT: s_addk_i32 s0, 0x3e7 | ; VI-NEXT: s_addk_i32 s0, 0x3e7 | ||||
; VI-NEXT: s_or_b32 s0, s0, 1 | ; VI-NEXT: s_or_b32 s0, s0, 1 | ||||
; VI-NEXT: v_mov_b32_e32 v2, s0 | ; VI-NEXT: v_mov_b32_e32 v2, s0 | ||||
; VI-NEXT: flat_store_short v[0:1], v2 | ; VI-NEXT: flat_store_short v[0:1], v2 | ||||
; VI-NEXT: s_endpgm | ; VI-NEXT: s_endpgm | ||||
%load = load i16, i16 addrspace(1)* %arg, align 4, !invariant.load !0 | %load = load i16, i16 addrspace(1)* %arg, align 4, !invariant.load !0 | ||||
%add = add i16 %load, 999 | %add = add i16 %load, 999 | ||||
%or = or i16 %add, 1 | %or = or i16 %add, 1 | ||||
store i16 %or, i16 addrspace(1)* null | store i16 %or, i16 addrspace(1)* null | ||||
ret void | ret void | ||||
} | } | ||||
declare i32 @llvm.amdgcn.workitem.id.x() | declare i32 @llvm.amdgcn.workitem.id.x() | ||||
!0 = !{} | !0 = !{} |