diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td index 88205ea361c55..f2686bdf56b41 100644 --- a/llvm/lib/Target/AMDGPU/BUFInstructions.td +++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td @@ -680,7 +680,7 @@ multiclass MUBUF_Pseudo_Stores { class MUBUF_Pseudo_Store_Lds : MUBUF_Pseudo { let LGKM_CNT = 1; let mayLoad = 1; diff --git a/llvm/lib/Target/AMDGPU/MIMGInstructions.td b/llvm/lib/Target/AMDGPU/MIMGInstructions.td index 3c7627ff60e92..1b94d6c43392d 100644 --- a/llvm/lib/Target/AMDGPU/MIMGInstructions.td +++ b/llvm/lib/Target/AMDGPU/MIMGInstructions.td @@ -1524,7 +1524,7 @@ class MIMG_IntersectRay_Helper { class MIMG_IntersectRay_gfx10 : MIMG_gfx10 { - let InOperandList = (ins AddrRC:$vaddr0, SReg_128:$srsrc, A16:$a16); + let InOperandList = (ins AddrRC:$vaddr0, SReg_128_XNULL:$srsrc, A16:$a16); let AsmString = opcode#" $vdata, $vaddr0, $srsrc$a16"; let nsa = 0; @@ -1532,13 +1532,13 @@ class MIMG_IntersectRay_gfx10 class MIMG_IntersectRay_nsa_gfx10 : MIMG_nsa_gfx10 { - let InOperandList = !con(nsah.AddrIns, (ins SReg_128:$srsrc, A16:$a16)); + let InOperandList = !con(nsah.AddrIns, (ins SReg_128_XNULL:$srsrc, A16:$a16)); let AsmString = opcode#" $vdata, "#nsah.AddrAsm#", $srsrc$a16"; } class MIMG_IntersectRay_gfx11 : MIMG_gfx11 { - let InOperandList = (ins AddrRC:$vaddr0, SReg_128:$srsrc, A16:$a16); + let InOperandList = (ins AddrRC:$vaddr0, SReg_128_XNULL:$srsrc, A16:$a16); let AsmString = opcode#" $vdata, $vaddr0, $srsrc$a16"; let nsa = 0; @@ -1548,7 +1548,7 @@ class MIMG_IntersectRay_nsa_gfx11 addr_types> : MIMG_nsa_gfx11 { - let InOperandList = !con(nsah.AddrIns, (ins SReg_128:$srsrc, A16:$a16)); + let InOperandList = !con(nsah.AddrIns, (ins SReg_128_XNULL:$srsrc, A16:$a16)); let AsmString = opcode#" $vdata, "#nsah.AddrAsm#", $srsrc$a16"; } @@ -1556,7 +1556,7 @@ class VIMAGE_IntersectRay_gfx12 addr_types> : VIMAGE_gfx12 { - let InOperandList = !con(nsah.AddrIns, (ins SReg_128:$rsrc, A16:$a16)); + let InOperandList = !con(nsah.AddrIns, (ins SReg_128_XNULL:$rsrc, A16:$a16)); let AsmString = opcode#" $vdata, "#nsah.AddrAsm#", $rsrc$a16"; } diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index 60e4ce92ac25d..37dcc10086257 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -341,10 +341,10 @@ let SubtargetPredicate = HasScalarDwordx3Loads in defm S_BUFFER_LOAD_DWORDX4 : SM_Pseudo_Loads ; defm S_BUFFER_LOAD_DWORDX8 : SM_Pseudo_Loads ; defm S_BUFFER_LOAD_DWORDX16 : SM_Pseudo_Loads ; -defm S_BUFFER_LOAD_I8 : SM_Pseudo_Loads ; -defm S_BUFFER_LOAD_U8 : SM_Pseudo_Loads ; -defm S_BUFFER_LOAD_I16 : SM_Pseudo_Loads ; -defm S_BUFFER_LOAD_U16 : SM_Pseudo_Loads ; +defm S_BUFFER_LOAD_I8 : SM_Pseudo_Loads ; +defm S_BUFFER_LOAD_U8 : SM_Pseudo_Loads ; +defm S_BUFFER_LOAD_I16 : SM_Pseudo_Loads ; +defm S_BUFFER_LOAD_U16 : SM_Pseudo_Loads ; } let SubtargetPredicate = HasScalarStores in { @@ -375,7 +375,7 @@ def S_DCACHE_WB_VOL : SM_Inval_Pseudo <"s_dcache_wb_vol", int_amdgcn_s_dcache_wb defm S_ATC_PROBE : SM_Pseudo_Probe ; let is_buffer = 1 in { -defm S_ATC_PROBE_BUFFER : SM_Pseudo_Probe ; +defm S_ATC_PROBE_BUFFER : SM_Pseudo_Probe ; } } // SubtargetPredicate = isGFX8Plus @@ -470,7 +470,7 @@ def S_PREFETCH_INST : SM_Prefetch_Pseudo <"s_prefetch_inst", SReg_64, 1>; def S_PREFETCH_INST_PC_REL : SM_Prefetch_Pseudo <"s_prefetch_inst_pc_rel", SReg_64, 0>; def S_PREFETCH_DATA : SM_Prefetch_Pseudo <"s_prefetch_data", SReg_64, 1>; def S_PREFETCH_DATA_PC_REL : SM_Prefetch_Pseudo <"s_prefetch_data_pc_rel", SReg_64, 0>; -def S_BUFFER_PREFETCH_DATA : SM_Prefetch_Pseudo <"s_buffer_prefetch_data", SReg_128, 1> { +def S_BUFFER_PREFETCH_DATA : SM_Prefetch_Pseudo <"s_buffer_prefetch_data", SReg_128_XNULL, 1> { let is_buffer = 1; } } // end let SubtargetPredicate = isGFX12Plus diff --git a/llvm/test/MC/AMDGPU/gfx1030_err.s b/llvm/test/MC/AMDGPU/gfx1030_err.s index 87a09875f75e9..a0565dc1e6d3c 100644 --- a/llvm/test/MC/AMDGPU/gfx1030_err.s +++ b/llvm/test/MC/AMDGPU/gfx1030_err.s @@ -573,3 +573,9 @@ v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,0] v_dot8_u32_u4 v0, v1, v2, v3 op_sel:[1,1] op_sel_hi:[1,1] // GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: not a valid operand. + +image_bvh_intersect_ray v[4:7], v[9:19], null +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +image_bvh64_intersect_ray v[4:7], v[9:20], null +// GFX10: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx10_asm_smem_err.s b/llvm/test/MC/AMDGPU/gfx10_asm_smem_err.s index 670e97325355b..74c283c571c56 100644 --- a/llvm/test/MC/AMDGPU/gfx10_asm_smem_err.s +++ b/llvm/test/MC/AMDGPU/gfx10_asm_smem_err.s @@ -84,3 +84,5 @@ s_buffer_load_dwordx16 s[4:19], null, s101 s_buffer_store_dword s4, null, s101 // NOGFX10: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +s_atc_probe_buffer 7, null, s2 +// NOGFX10: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s b/llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s index 9c614453c1ebd..25861989ec327 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_mimg_err.s @@ -517,3 +517,9 @@ image_sample_o v[5:6], v[1:2], null, s[12:15] dmask:0x3 dim:SQ_RSRC_IMG_1D image_sample_o v[5:6], v[1:2], s[8:15], null dmask:0x3 dim:SQ_RSRC_IMG_1D // NOGFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +image_bvh_intersect_ray v[4:7], v[9:19], null +// NOGFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +image_bvh64_intersect_ray v[4:7], v[9:20], null +// NOGFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_smem_err.s b/llvm/test/MC/AMDGPU/gfx11_asm_smem_err.s index da195b4a41182..7dd6ded66f1de 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_smem_err.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_smem_err.s @@ -29,3 +29,6 @@ s_buffer_load_dwordx8 s[4:11], null, s101 s_buffer_load_dwordx16 s[4:19], null, s101 // NOGFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_atc_probe_buffer 7, null, s2 +// NOGFX11: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_mimg_err.s b/llvm/test/MC/AMDGPU/gfx12_asm_mimg_err.s index 0f2cfc39e2ec8..ee82fa302d495 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_mimg_err.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_mimg_err.s @@ -374,3 +374,8 @@ image_sample_o v[5:6], [v1, v2], null, s[12:15] dmask:0x3 dim:SQ_RSRC_IMG_1D image_sample_o v[5:6], [v1, v2], s[8:15], null dmask:0x3 dim:SQ_RSRC_IMG_1D // NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +image_bvh_intersect_ray v[4:7], [v9, v10, v[11:13], v[14:16], v[17:19]], null +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +image_bvh64_intersect_ray v[4:7], [v[9:10], v11, v[12:14], v[15:17], v[18:20]], null +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_smem_err.s b/llvm/test/MC/AMDGPU/gfx12_asm_smem_err.s index 0f62c8b939991..49d7c7245608c 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_smem_err.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_smem_err.s @@ -29,3 +29,21 @@ s_buffer_load_dwordx8 s[4:11], null, s101 s_buffer_load_dwordx16 s[4:19], null, s101 // NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_atc_probe_buffer 7, null, s2 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_buffer_prefetch_data null, 100, s10, 7 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_buffer_load_i8 s5, null, s0 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_buffer_load_u8 s5, null, s0 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_buffer_load_i16 s5, null, s0 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction + +s_buffer_load_u16 s5, null, s0 +// NOGFX12: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction