brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · bf57e28 Raw
113 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck %s --check-prefixes=GCN3; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx900 < %s | FileCheck %s --check-prefixes=GCN4 5declare void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) nocapture, i32 %size, i32 %voffset, i32 %soffset, i32 %offset, i32 %aux)6 7define amdgpu_ps float @buffer_load_lds_dword(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds) {8; GCN-LABEL: buffer_load_lds_dword:9; GCN:       ; %bb.0: ; %main_body10; GCN-NEXT:    s_mov_b32 m0, s411; GCN-NEXT:    s_nop 012; GCN-NEXT:    buffer_load_dword off, s[0:3], 0 lds13; GCN-NEXT:    buffer_load_dword off, s[0:3], 0 offset:4 glc lds14; GCN-NEXT:    buffer_load_dword off, s[0:3], 0 offset:8 slc lds15; GCN-NEXT:    v_mov_b32_e32 v0, s416; GCN-NEXT:    s_waitcnt vmcnt(0)17; GCN-NEXT:    ds_read_b32 v0, v018; GCN-NEXT:    s_waitcnt lgkmcnt(0)19; GCN-NEXT:    ; return to shader part epilog20main_body:21  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 0, i32 0, i32 0, i32 0)22  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 0, i32 0, i32 4, i32 1)23  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 0, i32 0, i32 8, i32 2)24  %res = load float, ptr addrspace(3) %lds25  ret float %res26}27 28define amdgpu_ps void @buffer_load_lds_dword_imm_voffset(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds) {29; GCN-LABEL: buffer_load_lds_dword_imm_voffset:30; GCN:       ; %bb.0: ; %main_body31; GCN-NEXT:    v_mov_b32_e32 v0, 0x80032; GCN-NEXT:    s_mov_b32 m0, s433; GCN-NEXT:    s_nop 034; GCN-NEXT:    buffer_load_dword v0, s[0:3], 0 offen lds35; GCN-NEXT:    s_endpgm36main_body:37  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 2048, i32 0, i32 0, i32 0)38  ret void39}40 41define amdgpu_ps void @buffer_load_lds_dword_v_offset(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds, i32 %voffset) {42; GCN-LABEL: buffer_load_lds_dword_v_offset:43; GCN:       ; %bb.0: ; %main_body44; GCN-NEXT:    s_mov_b32 m0, s445; GCN-NEXT:    s_nop 046; GCN-NEXT:    buffer_load_dword v0, s[0:3], 0 offen lds47; GCN-NEXT:    s_endpgm48main_body:49  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 %voffset, i32 0, i32 0, i32 0)50  ret void51}52 53define amdgpu_ps void @buffer_load_lds_dword_s_offset(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds, i32 inreg %soffset) {54; GCN-LABEL: buffer_load_lds_dword_s_offset:55; GCN:       ; %bb.0: ; %main_body56; GCN-NEXT:    s_mov_b32 m0, s457; GCN-NEXT:    s_nop 058; GCN-NEXT:    buffer_load_dword off, s[0:3], s5 lds59; GCN-NEXT:    s_endpgm60main_body:61  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 0, i32 %soffset, i32 0, i32 0)62  ret void63}64 65define amdgpu_ps void @buffer_load_lds_dword_vs_offset(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds, i32 %voffset, i32 inreg %soffset) {66; GCN-LABEL: buffer_load_lds_dword_vs_offset:67; GCN:       ; %bb.0: ; %main_body68; GCN-NEXT:    s_mov_b32 m0, s469; GCN-NEXT:    s_nop 070; GCN-NEXT:    buffer_load_dword v0, s[0:3], s5 offen lds71; GCN-NEXT:    s_endpgm72main_body:73  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 %voffset, i32 %soffset, i32 0, i32 0)74  ret void75}76 77define amdgpu_ps void @buffer_load_lds_dword_vs_imm_offset(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds, i32 %voffset, i32 inreg %soffset) {78; GCN-LABEL: buffer_load_lds_dword_vs_imm_offset:79; GCN:       ; %bb.0: ; %main_body80; GCN-NEXT:    s_mov_b32 m0, s481; GCN-NEXT:    s_nop 082; GCN-NEXT:    buffer_load_dword v0, s[0:3], s5 offen offset:2048 lds83; GCN-NEXT:    s_endpgm84main_body:85  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 4, i32 %voffset, i32 %soffset, i32 2048, i32 0)86  ret void87}88 89define amdgpu_ps void @buffer_load_lds_ushort(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds) {90; GCN-LABEL: buffer_load_lds_ushort:91; GCN:       ; %bb.0: ; %main_body92; GCN-NEXT:    v_mov_b32_e32 v0, 0x80093; GCN-NEXT:    s_mov_b32 m0, s494; GCN-NEXT:    s_nop 095; GCN-NEXT:    buffer_load_ushort v0, s[0:3], 0 offen lds96; GCN-NEXT:    s_endpgm97main_body:98  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 2, i32 2048, i32 0, i32 0, i32 0)99  ret void100}101 102define amdgpu_ps void @buffer_load_lds_ubyte(<4 x i32> inreg %rsrc, ptr addrspace(3) inreg %lds) {103; GCN-LABEL: buffer_load_lds_ubyte:104; GCN:       ; %bb.0: ; %main_body105; GCN-NEXT:    s_mov_b32 m0, s4106; GCN-NEXT:    s_nop 0107; GCN-NEXT:    buffer_load_ubyte off, s[0:3], 0 offset:2048 lds108; GCN-NEXT:    s_endpgm109main_body:110  call void @llvm.amdgcn.raw.buffer.load.lds(<4 x i32> %rsrc, ptr addrspace(3) %lds, i32 1, i32 0, i32 0, i32 2048, i32 0)111  ret void112}113