diff --git a/llvm/lib/Target/AMDGPU/MIMGInstructions.td b/llvm/lib/Target/AMDGPU/MIMGInstructions.td index cc374fbae7cc5..595ef39ce03eb 100644 --- a/llvm/lib/Target/AMDGPU/MIMGInstructions.td +++ b/llvm/lib/Target/AMDGPU/MIMGInstructions.td @@ -966,7 +966,7 @@ class VIMAGE_Atomic_gfx12_Renamed : VIMAGE_Atomic_gfx12, - MnemonicAlias, Requires<[isGFX12Plus]>; + MnemonicAlias, Requires<[isGFX12Plus, HasImageInsts]>; multiclass MIMG_Atomic_Addr_Helper_m , "image_atomic_max_num_flt", 0, 1, "image_atomic_max_flt">; defm IMAGE_SAMPLE : MIMG_Sampler_WQM , AMDGPUSample>; -let OtherPredicates = [HasExtendedImageInsts] in { +let OtherPredicates = [HasImageInsts, HasExtendedImageInsts] in { defm IMAGE_SAMPLE_CL : MIMG_Sampler_WQM , AMDGPUSample_cl>; defm IMAGE_SAMPLE_D : MIMG_Sampler , AMDGPUSample_d>; defm IMAGE_SAMPLE_D_CL : MIMG_Sampler , AMDGPUSample_d_cl>; @@ -1617,7 +1617,7 @@ defm IMAGE_GATHER4_C_B_O : MIMG_Gather_WQM , AMDGPUSample_c_b_cl_o>; defm IMAGE_GATHER4_C_LZ_O : MIMG_Gather , AMDGPUSample_c_lz_o>; -let SubtargetPredicate = isGFX9Plus in +let OtherPredicates = [HasImageInsts, HasExtendedImageInsts, isGFX9Plus] in defm IMAGE_GATHER4H : MIMG_Gather , AMDGPUSample, 1, "image_gather4h">; defm IMAGE_GET_LOD : MIMG_Sampler , AMDGPUSample, 1, 0, 1, "image_get_lod">; @@ -1630,9 +1630,9 @@ defm IMAGE_SAMPLE_CD_O : MIMG_Sampler , AMDGPUSample_cd_cl_o>; defm IMAGE_SAMPLE_C_CD_O : MIMG_Sampler , AMDGPUSample_c_cd_o>; defm IMAGE_SAMPLE_C_CD_CL_O : MIMG_Sampler , AMDGPUSample_c_cd_cl_o>; -} // End OtherPredicates = [HasExtendedImageInsts] +} // End OtherPredicates = [HasImageInsts, HasExtendedImageInsts] -let OtherPredicates = [HasExtendedImageInsts,HasG16] in { +let OtherPredicates = [HasImageInsts, HasExtendedImageInsts, HasG16] in { defm IMAGE_SAMPLE_D_G16 : MIMG_Sampler , AMDGPUSample_d, 0, 1>; defm IMAGE_SAMPLE_D_CL_G16 : MIMG_Sampler , AMDGPUSample_d_cl, 0, 1>; defm IMAGE_SAMPLE_C_D_G16 : MIMG_Sampler , AMDGPUSample_c_d, 0, 1>; @@ -1649,23 +1649,22 @@ defm IMAGE_SAMPLE_CD_O_G16 : MIMG_Sampler , AMDGPUSample_cd_cl_o, 0, 1>; defm IMAGE_SAMPLE_C_CD_O_G16 : MIMG_Sampler , AMDGPUSample_c_cd_o, 0, 1>; defm IMAGE_SAMPLE_C_CD_CL_O_G16 : MIMG_Sampler , AMDGPUSample_c_cd_cl_o, 0, 1>; -} // End OtherPredicates = [HasExtendedImageInsts,HasG16] +} // End OtherPredicates = [HasImageInsts, HasExtendedImageInsts, HasG16] //def IMAGE_RSRC256 : MIMG_NoPattern_RSRC256 <"image_rsrc256", mimgopc<0x7e>>; //def IMAGE_SAMPLER : MIMG_NoPattern_ <"image_sampler", mimgopc<0x7f>>; -let SubtargetPredicate = isGFX10Only, OtherPredicates = [HasGFX10_AEncoding] in +let OtherPredicates = [HasImageInsts, HasGFX10_AEncoding, isGFX10Only] in defm IMAGE_MSAA_LOAD_X : MIMG_NoSampler , "image_msaa_load", 1, 0, 0, 1>; -let OtherPredicates = [HasGFX10_AEncoding] in +let OtherPredicates = [HasImageInsts, HasGFX10_AEncoding] in { defm IMAGE_MSAA_LOAD : MIMG_MSAA_Load , "image_msaa_load">; -let OtherPredicates = [HasGFX10_AEncoding] in { defm IMAGE_BVH_INTERSECT_RAY : MIMG_IntersectRay, "image_bvh_intersect_ray", 0, 0>; defm IMAGE_BVH_INTERSECT_RAY_a16 : MIMG_IntersectRay, "image_bvh_intersect_ray", 0, 1>; defm IMAGE_BVH64_INTERSECT_RAY : MIMG_IntersectRay, "image_bvh64_intersect_ray", 1, 0>; defm IMAGE_BVH64_INTERSECT_RAY_a16 : MIMG_IntersectRay, "image_bvh64_intersect_ray", 1, 1>; -} // End OtherPredicates = [HasGFX10_AEncoding] +} // End OtherPredicates = [HasImageInsts, HasGFX10_AEncoding] } // End let OtherPredicates = [HasImageInsts]