110 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck --check-prefix=GCN %s3; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1250 < %s | FileCheck --check-prefix=GCN %s4 5declare void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 %col)6 7define amdgpu_ps void @global_prefetch(ptr addrspace(1) %ptr) {8; GCN-LABEL: global_prefetch:9; GCN: ; %bb.0: ; %entry10; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 111; GCN-NEXT: global_prefetch_b8 v[0:1], off12; GCN-NEXT: s_endpgm13entry:14 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 0)15 ret void16}17 18define amdgpu_ps void @global_prefetch_sgpr(ptr addrspace(1) inreg %ptr) {19; GCN-LABEL: global_prefetch_sgpr:20; GCN: ; %bb.0: ; %entry21; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 122; GCN-NEXT: v_mov_b32_e32 v0, 023; GCN-NEXT: global_prefetch_b8 v0, s[0:1]24; GCN-NEXT: s_endpgm25entry:26 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 0)27 ret void28}29 30define amdgpu_ps void @global_prefetch_offset(ptr addrspace(1) %ptr) {31; GCN-LABEL: global_prefetch_offset:32; GCN: ; %bb.0: ; %entry33; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 134; GCN-NEXT: global_prefetch_b8 v[0:1], off offset:51235; GCN-NEXT: s_endpgm36entry:37 %gep = getelementptr inbounds i32, ptr addrspace(1) %ptr, i32 12838 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %gep, i32 0)39 ret void40}41 42define amdgpu_ps void @global_prefetch_sgpr_voffset(ptr addrspace(1) inreg %ptr, i32 %offset) {43; GCN-LABEL: global_prefetch_sgpr_voffset:44; GCN: ; %bb.0: ; %entry45; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 146; GCN-NEXT: global_prefetch_b8 v0, s[0:1]47; GCN-NEXT: s_endpgm48entry:49 %gep = getelementptr i8, ptr addrspace(1) %ptr, i32 %offset50 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %gep, i32 0)51 ret void52}53 54define amdgpu_ps void @global_prefetch_sgpr_voffset_offset(ptr addrspace(1) inreg %ptr, i32 %offset) {55; GCN-LABEL: global_prefetch_sgpr_voffset_offset:56; GCN: ; %bb.0: ; %entry57; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 158; GCN-NEXT: global_prefetch_b8 v0, s[0:1] offset:12859; GCN-NEXT: s_endpgm60entry:61 %gep1 = getelementptr i8, ptr addrspace(1) %ptr, i32 %offset62 %gep2 = getelementptr i8, ptr addrspace(1) %gep1, i32 12863 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %gep2, i32 0)64 ret void65}66 67define amdgpu_ps void @global_prefetch_se(ptr addrspace(1) %ptr) {68; GCN-LABEL: global_prefetch_se:69; GCN: ; %bb.0: ; %entry70; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 171; GCN-NEXT: global_prefetch_b8 v[0:1], off scope:SCOPE_SE72; GCN-NEXT: s_endpgm73entry:74 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 8)75 ret void76}77 78define amdgpu_ps void @global_prefetch_se_nt(ptr addrspace(1) %ptr) {79; GCN-LABEL: global_prefetch_se_nt:80; GCN: ; %bb.0: ; %entry81; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 182; GCN-NEXT: global_prefetch_b8 v[0:1], off th:TH_LOAD_NT scope:SCOPE_SE83; GCN-NEXT: s_endpgm84entry:85 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 9)86 ret void87}88 89define amdgpu_ps void @global_prefetch_dev_ht(ptr addrspace(1) %ptr) {90; GCN-LABEL: global_prefetch_dev_ht:91; GCN: ; %bb.0: ; %entry92; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 193; GCN-NEXT: global_prefetch_b8 v[0:1], off th:TH_LOAD_HT scope:SCOPE_DEV94; GCN-NEXT: s_endpgm95entry:96 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 18)97 ret void98}99 100define amdgpu_ps void @global_prefetch_sys_lu(ptr addrspace(1) %ptr) {101; GCN-LABEL: global_prefetch_sys_lu:102; GCN: ; %bb.0: ; %entry103; GCN-NEXT: s_setreg_imm32_b32 hwreg(HW_REG_WAVE_MODE, 25, 1), 1104; GCN-NEXT: global_prefetch_b8 v[0:1], off th:TH_LOAD_BYPASS scope:SCOPE_SYS105; GCN-NEXT: s_endpgm106entry:107 tail call void @llvm.amdgcn.global.prefetch(ptr addrspace(1) %ptr, i32 27)108 ret void109}110