brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · be3d5d1 Raw
70 lines · plain
1; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck -check-prefix=GCN %s2 3; GCN-LABEL: {{^}}const_load_no_shrink_dword_to_unaligned_byte:4; GCN: s_load_dword s{{[0-9]+}}5; GCN: s_load_dword [[LD:s[0-9]+]],6; GCN: s_bfe_i32 s{{[0-9]+}}, [[LD]], 0x100137define amdgpu_kernel void @const_load_no_shrink_dword_to_unaligned_byte(ptr addrspace(1) %out, ptr addrspace(4) %in, i32 %x) {8  %ptr = getelementptr i32, ptr addrspace(4) %in, i32 %x9  %load = load i32, ptr addrspace(4) %ptr, align 410  %and = and i32 %load, 52428811  %cmp = icmp eq i32 %and, 012  %sel = select i1 %cmp, i32 0, i32 -113  store i32 %sel, ptr addrspace(1) %out14  ret void15}16 17; GCN-LABEL: const_load_no_shrink_dword_to_aligned_byte:18; GCN: s_load_dword s{{[0-9]+}}19; GCN: s_load_dword [[LD:s[0-9]+]],20; GCN: s_bfe_i32 s{{[0-9]+}}, [[LD]], 0x1000321define amdgpu_kernel void @const_load_no_shrink_dword_to_aligned_byte(ptr addrspace(1) %out, ptr addrspace(4) %in, i32 %x) {22  %ptr = getelementptr i32, ptr addrspace(4) %in, i32 %x23  %load = load i32, ptr addrspace(4) %ptr, align 424  %and = and i32 %load, 825  %cmp = icmp eq i32 %and, 026  %sel = select i1 %cmp, i32 0, i32 -127  store i32 %sel, ptr addrspace(1) %out28  ret void29}30 31; GCN-LABEL: global_load_no_shrink_dword_to_unaligned_byte:32; GCN: s_load_dword s{{[0-9]+}}33; GCN: s_load_dword [[LD:s[0-9]+]],34; GCN: s_bfe_i32 s{{[0-9]+}}, [[LD]], 0x1001335define amdgpu_kernel void @global_load_no_shrink_dword_to_unaligned_byte(ptr addrspace(1) noalias %out, ptr addrspace(1) noalias %in, i32 %x) {36  %ptr = getelementptr i32, ptr addrspace(1) %in, i32 %x37  %load = load i32, ptr addrspace(1) %ptr, align 438  %and = and i32 %load, 52428839  %cmp = icmp eq i32 %and, 040  %sel = select i1 %cmp, i32 0, i32 -141  store i32 %sel, ptr addrspace(1) %out42  ret void43}44 45; GCN-LABEL: global_load_no_shrink_dword_to_aligned_byte:46; GCN: s_load_dword s{{[0-9]+}}47; GCN: s_load_dword [[LD:s[0-9]+]],48; GCN: s_bfe_i32 s{{[0-9]+}}, [[LD]], 0x1000349define amdgpu_kernel void @global_load_no_shrink_dword_to_aligned_byte(ptr addrspace(1) %out, ptr addrspace(1) %in, i32 %x) {50  %ptr = getelementptr i32, ptr addrspace(1) %in, i32 %x51  %load = load i32, ptr addrspace(1) %ptr, align 452  %and = and i32 %load, 853  %cmp = icmp eq i32 %and, 054  %sel = select i1 %cmp, i32 0, i32 -155  store i32 %sel, ptr addrspace(1) %out56  ret void57}58 59; GCN-LABEL: const_load_shrink_dword_to_unaligned_byte:60; GCN: global_load_ushort61define amdgpu_kernel void @const_load_shrink_dword_to_unaligned_byte(ptr addrspace(1) %out, ptr addrspace(4) %in, i32 %x) {62  %ptr = getelementptr i32, ptr addrspace(4) %in, i32 %x63  %load = load i32, ptr addrspace(4) %ptr, align 264  %and = and i32 %load, 52428865  %cmp = icmp eq i32 %and, 066  %sel = select i1 %cmp, i32 0, i32 -167  store i32 %sel, ptr addrspace(1) %out68  ret void69}70