brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 3dc6c55 Raw
97 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn--amdhsa < %s | FileCheck -check-prefix=GCN %s3 4declare i32 @llvm.amdgcn.lds.kernel.id()5declare i32 @llvm.amdgcn.workgroup.id.x()6 7define void @function_lds_id(ptr addrspace(1) %out) {8; GCN-LABEL: function_lds_id:9; GCN:       ; %bb.0:10; GCN-NEXT:    s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)11; GCN-NEXT:    s_add_i32 s4, s15, s1212; GCN-NEXT:    v_mov_b32_e32 v2, s413; GCN-NEXT:    flat_store_dword v[0:1], v214; GCN-NEXT:    s_waitcnt vmcnt(0)15; GCN-NEXT:    s_setpc_b64 s[30:31]16  %tmp0 = call i32 @llvm.amdgcn.lds.kernel.id()17  %help = call i32 @llvm.amdgcn.workgroup.id.x()18  %both = add i32 %tmp0, %help19  store i32 %both, ptr addrspace(1) %out20  ret void21}22 23define amdgpu_kernel void @kernel_lds_id(ptr addrspace(1) %out) !llvm.amdgcn.lds.kernel.id !0 {24; GCN-LABEL: kernel_lds_id:25; GCN:       ; %bb.0:26; GCN-NEXT:    s_mov_b32 flat_scratch_lo, s1327; GCN-NEXT:    s_add_i32 s12, s12, s1728; GCN-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 829; GCN-NEXT:    s_load_dwordx2 s[0:1], s[8:9], 0x030; GCN-NEXT:    s_add_i32 s2, s14, 4231; GCN-NEXT:    v_mov_b32_e32 v2, s232; GCN-NEXT:    s_waitcnt lgkmcnt(0)33; GCN-NEXT:    v_mov_b32_e32 v0, s034; GCN-NEXT:    v_mov_b32_e32 v1, s135; GCN-NEXT:    flat_store_dword v[0:1], v236; GCN-NEXT:    s_endpgm37  %tmp0 = call i32 @llvm.amdgcn.lds.kernel.id()38  %help = call i32 @llvm.amdgcn.workgroup.id.x()39  %both = add i32 %tmp0, %help40  store i32 %both, ptr addrspace(1) %out41  ret void42}43 44define amdgpu_kernel void @indirect_lds_id(ptr addrspace(1) %out) !llvm.amdgcn.lds.kernel.id !1 {45; GCN-LABEL: indirect_lds_id:46; GCN:       ; %bb.0:47; GCN-NEXT:    s_mov_b32 s32, 048; GCN-NEXT:    s_mov_b32 flat_scratch_lo, s1349; GCN-NEXT:    s_add_i32 s12, s12, s1750; GCN-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 851; GCN-NEXT:    s_add_u32 s0, s0, s1752; GCN-NEXT:    s_addc_u32 s1, s1, 053; GCN-NEXT:    s_mov_b32 s13, s1554; GCN-NEXT:    s_mov_b32 s12, s1455; GCN-NEXT:    s_load_dwordx2 s[18:19], s[8:9], 0x056; GCN-NEXT:    s_add_u32 s8, s8, 857; GCN-NEXT:    v_lshlrev_b32_e32 v2, 20, v258; GCN-NEXT:    s_addc_u32 s9, s9, 059; GCN-NEXT:    s_getpc_b64 s[14:15]60; GCN-NEXT:    s_add_u32 s14, s14, function_lds_id@gotpcrel32@lo+461; GCN-NEXT:    s_addc_u32 s15, s15, function_lds_id@gotpcrel32@hi+1262; GCN-NEXT:    s_load_dwordx2 s[20:21], s[14:15], 0x063; GCN-NEXT:    v_lshlrev_b32_e32 v1, 10, v164; GCN-NEXT:    v_or_b32_e32 v0, v0, v165; GCN-NEXT:    v_or_b32_e32 v31, v0, v266; GCN-NEXT:    s_mov_b32 s15, 2167; GCN-NEXT:    s_mov_b32 s14, s1668; GCN-NEXT:    s_waitcnt lgkmcnt(0)69; GCN-NEXT:    v_mov_b32_e32 v0, s1870; GCN-NEXT:    v_mov_b32_e32 v1, s1971; GCN-NEXT:    s_swappc_b64 s[30:31], s[20:21]72; GCN-NEXT:    s_endpgm73  call void @function_lds_id(ptr addrspace(1) %out)74  ret void75}76 77define amdgpu_kernel void @doesnt_use_it(ptr addrspace(1) %out) !llvm.amdgcn.lds.kernel.id !0 {78; GCN-LABEL: doesnt_use_it:79; GCN:       ; %bb.0:80; GCN-NEXT:    s_mov_b32 flat_scratch_lo, s1381; GCN-NEXT:    s_add_i32 s12, s12, s1782; GCN-NEXT:    s_lshr_b32 flat_scratch_hi, s12, 883; GCN-NEXT:    s_load_dwordx2 s[0:1], s[8:9], 0x084; GCN-NEXT:    v_mov_b32_e32 v2, 0x6485; GCN-NEXT:    s_waitcnt lgkmcnt(0)86; GCN-NEXT:    v_mov_b32_e32 v0, s087; GCN-NEXT:    v_mov_b32_e32 v1, s188; GCN-NEXT:    flat_store_dword v[0:1], v289; GCN-NEXT:    s_endpgm90  store i32 100, ptr addrspace(1) %out91  ret void92}93 94 95!0 = !{i32 42}96!1 = !{i32 21}97