129 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=gfx1200 < %s | FileCheck --check-prefixes=GCN,SDAG %s3; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx1200 < %s | FileCheck --check-prefixes=GCN,GISEL %s4 5define amdgpu_ps void @prefetch_data_sgpr_base_sgpr_len(ptr addrspace(4) inreg %ptr, i32 inreg %len) {6; GCN-LABEL: prefetch_data_sgpr_base_sgpr_len:7; GCN: ; %bb.0: ; %entry8; GCN-NEXT: s_prefetch_data s[0:1], 0x0, s2, 09; GCN-NEXT: s_endpgm10entry:11 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 %len)12 ret void13}14 15define amdgpu_ps void @prefetch_data_sgpr_imm_base_sgpr_len(ptr addrspace(4) inreg %ptr, i32 inreg %len) {16; GCN-LABEL: prefetch_data_sgpr_imm_base_sgpr_len:17; GCN: ; %bb.0: ; %entry18; GCN-NEXT: s_prefetch_data s[0:1], 0x200, s2, 019; GCN-NEXT: s_endpgm20entry:21 %gep = getelementptr i32, ptr addrspace(4) %ptr, i32 12822 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %gep, i32 %len)23 ret void24}25 26define amdgpu_ps void @prefetch_data_sgpr_base_imm_len(ptr addrspace(4) inreg %ptr) {27; GCN-LABEL: prefetch_data_sgpr_base_imm_len:28; GCN: ; %bb.0: ; %entry29; GCN-NEXT: s_prefetch_data s[0:1], 0x0, null, 3130; GCN-NEXT: s_endpgm31entry:32 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 31)33 ret void34}35 36define amdgpu_ps void @prefetch_data_sgpr_imm_base_imm_len(ptr addrspace(4) inreg %ptr) {37; GCN-LABEL: prefetch_data_sgpr_imm_base_imm_len:38; GCN: ; %bb.0: ; %entry39; GCN-NEXT: s_prefetch_data s[0:1], 0x200, null, 3140; GCN-NEXT: s_endpgm41entry:42 %gep = getelementptr i32, ptr addrspace(4) %ptr, i32 12843 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %gep, i32 31)44 ret void45}46 47define amdgpu_ps void @prefetch_data_vgpr_base_sgpr_len(ptr addrspace(4) %ptr, i32 inreg %len) {48; GCN-LABEL: prefetch_data_vgpr_base_sgpr_len:49; GCN: ; %bb.0: ; %entry50; GCN-NEXT: v_readfirstlane_b32 s2, v051; GCN-NEXT: v_readfirstlane_b32 s3, v152; GCN-NEXT: s_prefetch_data s[2:3], 0x0, s0, 053; GCN-NEXT: s_endpgm54entry:55 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 %len)56 ret void57}58 59define amdgpu_ps void @prefetch_data_vgpr_imm_base_sgpr_len(ptr addrspace(4) %ptr, i32 inreg %len) {60; SDAG-LABEL: prefetch_data_vgpr_imm_base_sgpr_len:61; SDAG: ; %bb.0: ; %entry62; SDAG-NEXT: v_readfirstlane_b32 s2, v063; SDAG-NEXT: v_readfirstlane_b32 s3, v164; SDAG-NEXT: s_prefetch_data s[2:3], 0x200, s0, 065; SDAG-NEXT: s_endpgm66;67; GISEL-LABEL: prefetch_data_vgpr_imm_base_sgpr_len:68; GISEL: ; %bb.0: ; %entry69; GISEL-NEXT: v_add_co_u32 v0, vcc_lo, 0x200, v070; GISEL-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_2)71; GISEL-NEXT: v_add_co_ci_u32_e64 v1, null, 0, v1, vcc_lo72; GISEL-NEXT: v_readfirstlane_b32 s2, v073; GISEL-NEXT: s_delay_alu instid0(VALU_DEP_2)74; GISEL-NEXT: v_readfirstlane_b32 s3, v175; GISEL-NEXT: s_prefetch_data s[2:3], 0x0, s0, 076; GISEL-NEXT: s_endpgm77entry:78 %gep = getelementptr i32, ptr addrspace(4) %ptr, i32 12879 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %gep, i32 %len)80 ret void81}82 83define amdgpu_ps void @prefetch_data_sgpr_base_vgpr_len(ptr addrspace(4) inreg %ptr, i32 %len) {84; GCN-LABEL: prefetch_data_sgpr_base_vgpr_len:85; GCN: ; %bb.0: ; %entry86; GCN-NEXT: v_readfirstlane_b32 s2, v087; GCN-NEXT: s_prefetch_data s[0:1], 0x0, s2, 088; GCN-NEXT: s_endpgm89entry:90 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 %len)91 ret void92}93 94define amdgpu_ps void @prefetch_data_sgpr_base_imm_len_global(ptr addrspace(1) inreg %ptr) {95; GCN-LABEL: prefetch_data_sgpr_base_imm_len_global:96; GCN: ; %bb.0: ; %entry97; GCN-NEXT: s_prefetch_data s[0:1], 0x0, null, 3198; GCN-NEXT: s_endpgm99entry:100 tail call void @llvm.amdgcn.s.prefetch.data.p1(ptr addrspace(1) %ptr, i32 31)101 ret void102}103 104define amdgpu_ps void @prefetch_data_sgpr_base_imm_len_flat(ptr inreg %ptr) {105; GCN-LABEL: prefetch_data_sgpr_base_imm_len_flat:106; GCN: ; %bb.0: ; %entry107; GCN-NEXT: s_prefetch_data s[0:1], 0x0, null, 31108; GCN-NEXT: s_endpgm109entry:110 tail call void @llvm.amdgcn.s.prefetch.data.p0(ptr %ptr, i32 31)111 ret void112}113 114define amdgpu_ps void @prefetch_data_vgpr_base_imm_len(ptr addrspace(4) %ptr) {115; GCN-LABEL: prefetch_data_vgpr_base_imm_len:116; GCN: ; %bb.0: ; %entry117; GCN-NEXT: v_readfirstlane_b32 s0, v0118; GCN-NEXT: v_readfirstlane_b32 s1, v1119; GCN-NEXT: s_prefetch_data s[0:1], 0x0, null, 0120; GCN-NEXT: s_endpgm121entry:122 tail call void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 0)123 ret void124}125 126declare void @llvm.amdgcn.s.prefetch.data.p4(ptr addrspace(4) %ptr, i32 %len)127declare void @llvm.amdgcn.s.prefetch.data.p1(ptr addrspace(1) %ptr, i32 %len)128declare void @llvm.amdgcn.s.prefetch.data.p0(ptr %ptr, i32 %len)129