7348 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX9 %s3; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX10 %s4; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1100 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX11 %s5; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1200 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX12 %s6 7define amdgpu_ps <4 x float> @sample_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s) {8 ; GFX9-LABEL: name: sample_1d9 ; GFX9: bb.1.main_body:10 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr011 ; GFX9-NEXT: {{ $}}12 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr213 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr314 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr415 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr516 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr617 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr718 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr819 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr920 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)21 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr1022 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr1123 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr1224 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr1325 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)26 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr027 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)28 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF29 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)30 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)31 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)32 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)33 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)34 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)35 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)36 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr337 ;38 ; GFX10-LABEL: name: sample_1d39 ; GFX10: bb.1.main_body:40 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr041 ; GFX10-NEXT: {{ $}}42 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr243 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr344 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr445 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr546 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr647 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr748 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr849 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr950 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)51 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr1052 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr1153 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr1254 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr1355 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)56 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr057 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)58 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF59 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)60 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)61 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)62 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)63 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)64 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)65 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)66 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr367 ;68 ; GFX11-LABEL: name: sample_1d69 ; GFX11: bb.1.main_body:70 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr071 ; GFX11-NEXT: {{ $}}72 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr273 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr374 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr475 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr576 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr677 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr778 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr879 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr980 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)81 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr1082 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr1183 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr1284 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr1385 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)86 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr087 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)88 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF89 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)90 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)91 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)92 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)93 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)94 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)95 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)96 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr397 ;98 ; GFX12-LABEL: name: sample_1d99 ; GFX12: bb.1.main_body:100 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0101 ; GFX12-NEXT: {{ $}}102 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2103 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3104 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4105 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5106 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6107 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7108 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8109 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9110 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)111 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10112 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11113 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12114 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13115 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)116 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0117 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)118 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF119 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)120 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)121 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)122 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)123 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)124 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)125 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)126 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3127main_body:128 %v = call <4 x float> @llvm.amdgcn.image.sample.1d.v4f32.f16(i32 15, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)129 ret <4 x float> %v130}131 132define amdgpu_ps <4 x float> @sample_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t) {133 ; GFX9-LABEL: name: sample_2d134 ; GFX9: bb.1.main_body:135 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1136 ; GFX9-NEXT: {{ $}}137 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2138 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3139 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4140 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5141 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6142 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7143 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8144 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9145 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)146 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10147 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11148 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12149 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13150 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)151 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0152 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)153 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1154 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)155 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)156 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)157 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)158 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)159 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)160 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)161 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)162 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3163 ;164 ; GFX10-LABEL: name: sample_2d165 ; GFX10: bb.1.main_body:166 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1167 ; GFX10-NEXT: {{ $}}168 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2169 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3170 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4171 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5172 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6173 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7174 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8175 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9176 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)177 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10178 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11179 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12180 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13181 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)182 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0183 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)184 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1185 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)186 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)187 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)188 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)189 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)190 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)191 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)192 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)193 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3194 ;195 ; GFX11-LABEL: name: sample_2d196 ; GFX11: bb.1.main_body:197 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1198 ; GFX11-NEXT: {{ $}}199 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2200 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3201 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4202 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5203 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6204 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7205 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8206 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9207 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)208 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10209 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11210 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12211 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13212 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)213 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0214 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)215 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1216 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)217 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)218 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)219 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)220 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)221 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)222 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)223 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)224 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3225 ;226 ; GFX12-LABEL: name: sample_2d227 ; GFX12: bb.1.main_body:228 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1229 ; GFX12-NEXT: {{ $}}230 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2231 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3232 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4233 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5234 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6235 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7236 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8237 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9238 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)239 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10240 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11241 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12242 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13243 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)244 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0245 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)246 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1247 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)248 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)249 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)250 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)251 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)252 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)253 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)254 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)255 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3256main_body:257 %v = call <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f16(i32 15, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)258 ret <4 x float> %v259}260 261define amdgpu_ps <4 x float> @sample_3d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %r) {262 ; GFX9-LABEL: name: sample_3d263 ; GFX9: bb.1.main_body:264 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2265 ; GFX9-NEXT: {{ $}}266 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2267 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3268 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4269 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5270 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6271 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7272 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8273 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9274 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)275 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10276 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11277 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12278 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13279 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)280 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0281 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)282 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1283 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)284 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2285 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)286 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)287 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF288 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)289 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)290 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.3d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)291 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)292 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)293 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)294 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)295 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)296 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3297 ;298 ; GFX10-LABEL: name: sample_3d299 ; GFX10: bb.1.main_body:300 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2301 ; GFX10-NEXT: {{ $}}302 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2303 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3304 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4305 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5306 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6307 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7308 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8309 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9310 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)311 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10312 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11313 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12314 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13315 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)316 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0317 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)318 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1319 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)320 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2321 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)322 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)323 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF324 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)325 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.3d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)326 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)327 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)328 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)329 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)330 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)331 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3332 ;333 ; GFX11-LABEL: name: sample_3d334 ; GFX11: bb.1.main_body:335 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2336 ; GFX11-NEXT: {{ $}}337 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2338 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3339 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4340 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5341 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6342 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7343 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8344 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9345 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)346 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10347 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11348 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12349 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13350 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)351 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0352 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)353 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1354 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)355 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2356 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)357 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)358 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF359 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)360 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.3d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)361 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)362 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)363 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)364 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)365 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)366 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3367 ;368 ; GFX12-LABEL: name: sample_3d369 ; GFX12: bb.1.main_body:370 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2371 ; GFX12-NEXT: {{ $}}372 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2373 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3374 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4375 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5376 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6377 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7378 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8379 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9380 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)381 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10382 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11383 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12384 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13385 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)386 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0387 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)388 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1389 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)390 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2391 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)392 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)393 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF394 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)395 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.3d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)396 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)397 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)398 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)399 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)400 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)401 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3402main_body:403 %v = call <4 x float> @llvm.amdgcn.image.sample.3d.v4f32.f16(i32 15, half %s, half %t, half %r, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)404 ret <4 x float> %v405}406 407define amdgpu_ps <4 x float> @sample_cube(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %face) {408 ; GFX9-LABEL: name: sample_cube409 ; GFX9: bb.1.main_body:410 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2411 ; GFX9-NEXT: {{ $}}412 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2413 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3414 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4415 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5416 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6417 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7418 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8419 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9420 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)421 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10422 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11423 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12424 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13425 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)426 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0427 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)428 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1429 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)430 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2431 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)432 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)433 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF434 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)435 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)436 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cube), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)437 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)438 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)439 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)440 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)441 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)442 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3443 ;444 ; GFX10-LABEL: name: sample_cube445 ; GFX10: bb.1.main_body:446 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2447 ; GFX10-NEXT: {{ $}}448 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2449 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3450 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4451 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5452 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6453 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7454 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8455 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9456 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)457 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10458 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11459 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12460 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13461 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)462 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0463 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)464 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1465 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)466 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2467 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)468 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)469 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF470 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)471 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cube), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)472 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)473 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)474 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)475 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)476 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)477 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3478 ;479 ; GFX11-LABEL: name: sample_cube480 ; GFX11: bb.1.main_body:481 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2482 ; GFX11-NEXT: {{ $}}483 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2484 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3485 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4486 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5487 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6488 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7489 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8490 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9491 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)492 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10493 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11494 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12495 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13496 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)497 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0498 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)499 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1500 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)501 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2502 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)503 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)504 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF505 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)506 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cube), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)507 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)508 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)509 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)510 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)511 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)512 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3513 ;514 ; GFX12-LABEL: name: sample_cube515 ; GFX12: bb.1.main_body:516 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2517 ; GFX12-NEXT: {{ $}}518 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2519 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3520 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4521 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5522 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6523 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7524 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8525 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9526 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)527 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10528 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11529 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12530 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13531 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)532 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0533 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)534 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1535 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)536 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2537 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)538 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)539 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF540 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)541 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cube), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)542 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)543 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)544 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)545 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)546 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)547 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3548main_body:549 %v = call <4 x float> @llvm.amdgcn.image.sample.cube.v4f32.f16(i32 15, half %s, half %t, half %face, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)550 ret <4 x float> %v551}552 553define amdgpu_ps <4 x float> @sample_1darray(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %slice) {554 ; GFX9-LABEL: name: sample_1darray555 ; GFX9: bb.1.main_body:556 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1557 ; GFX9-NEXT: {{ $}}558 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2559 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3560 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4561 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5562 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6563 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7564 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8565 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9566 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)567 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10568 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11569 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12570 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13571 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)572 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0573 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)574 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1575 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)576 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)577 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)578 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)579 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)580 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)581 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)582 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)583 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3584 ;585 ; GFX10-LABEL: name: sample_1darray586 ; GFX10: bb.1.main_body:587 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1588 ; GFX10-NEXT: {{ $}}589 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2590 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3591 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4592 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5593 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6594 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7595 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8596 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9597 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)598 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10599 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11600 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12601 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13602 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)603 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0604 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)605 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1606 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)607 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)608 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)609 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)610 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)611 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)612 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)613 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)614 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3615 ;616 ; GFX11-LABEL: name: sample_1darray617 ; GFX11: bb.1.main_body:618 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1619 ; GFX11-NEXT: {{ $}}620 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2621 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3622 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4623 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5624 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6625 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7626 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8627 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9628 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)629 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10630 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11631 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12632 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13633 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)634 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0635 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)636 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1637 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)638 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)639 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)640 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)641 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)642 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)643 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)644 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)645 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3646 ;647 ; GFX12-LABEL: name: sample_1darray648 ; GFX12: bb.1.main_body:649 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1650 ; GFX12-NEXT: {{ $}}651 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2652 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3653 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4654 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5655 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6656 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7657 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8658 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9659 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)660 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10661 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11662 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12663 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13664 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)665 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0666 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)667 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1668 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)669 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)670 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)671 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)672 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)673 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)674 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)675 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)676 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3677main_body:678 %v = call <4 x float> @llvm.amdgcn.image.sample.1darray.v4f32.f16(i32 15, half %s, half %slice, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)679 ret <4 x float> %v680}681 682define amdgpu_ps <4 x float> @sample_2darray(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %slice) {683 ; GFX9-LABEL: name: sample_2darray684 ; GFX9: bb.1.main_body:685 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2686 ; GFX9-NEXT: {{ $}}687 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2688 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3689 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4690 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5691 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6692 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7693 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8694 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9695 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)696 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10697 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11698 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12699 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13700 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)701 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0702 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)703 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1704 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)705 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2706 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)707 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)708 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF709 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)710 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)711 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2darray), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)712 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)713 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)714 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)715 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)716 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)717 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3718 ;719 ; GFX10-LABEL: name: sample_2darray720 ; GFX10: bb.1.main_body:721 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2722 ; GFX10-NEXT: {{ $}}723 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2724 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3725 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4726 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5727 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6728 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7729 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8730 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9731 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)732 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10733 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11734 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12735 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13736 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)737 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0738 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)739 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1740 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)741 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2742 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)743 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)744 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF745 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)746 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2darray), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)747 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)748 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)749 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)750 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)751 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)752 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3753 ;754 ; GFX11-LABEL: name: sample_2darray755 ; GFX11: bb.1.main_body:756 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2757 ; GFX11-NEXT: {{ $}}758 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2759 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3760 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4761 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5762 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6763 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7764 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8765 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9766 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)767 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10768 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11769 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12770 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13771 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)772 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0773 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)774 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1775 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)776 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2777 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)778 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)779 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF780 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)781 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2darray), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)782 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)783 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)784 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)785 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)786 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)787 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3788 ;789 ; GFX12-LABEL: name: sample_2darray790 ; GFX12: bb.1.main_body:791 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2792 ; GFX12-NEXT: {{ $}}793 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2794 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3795 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4796 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5797 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6798 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7799 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8800 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9801 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)802 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10803 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11804 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12805 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13806 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)807 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0808 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)809 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1810 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)811 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2812 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)813 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)814 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF815 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)816 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2darray), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)817 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)818 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)819 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)820 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)821 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)822 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3823main_body:824 %v = call <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f16(i32 15, half %s, half %t, half %slice, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)825 ret <4 x float> %v826}827 828define amdgpu_ps <4 x float> @sample_c_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s) {829 ; GFX9-LABEL: name: sample_c_1d830 ; GFX9: bb.1.main_body:831 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1832 ; GFX9-NEXT: {{ $}}833 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2834 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3835 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4836 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5837 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6838 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7839 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8840 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9841 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)842 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10843 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11844 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12845 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13846 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)847 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0848 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1849 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)850 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)851 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF852 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)853 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)854 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)855 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)856 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)857 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)858 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)859 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)860 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3861 ;862 ; GFX10-LABEL: name: sample_c_1d863 ; GFX10: bb.1.main_body:864 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1865 ; GFX10-NEXT: {{ $}}866 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2867 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3868 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4869 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5870 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6871 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7872 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8873 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9874 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)875 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10876 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11877 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12878 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13879 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)880 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0881 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1882 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)883 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)884 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF885 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)886 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)887 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)888 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)889 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)890 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)891 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)892 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3893 ;894 ; GFX11-LABEL: name: sample_c_1d895 ; GFX11: bb.1.main_body:896 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1897 ; GFX11-NEXT: {{ $}}898 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2899 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3900 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4901 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5902 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6903 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7904 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8905 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9906 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)907 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10908 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11909 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12910 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13911 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)912 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0913 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1914 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)915 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)916 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF917 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)918 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)919 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)920 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)921 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)922 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)923 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)924 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3925 ;926 ; GFX12-LABEL: name: sample_c_1d927 ; GFX12: bb.1.main_body:928 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1929 ; GFX12-NEXT: {{ $}}930 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2931 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3932 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4933 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5934 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6935 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7936 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8937 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9938 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)939 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10940 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11941 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12942 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13943 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)944 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0945 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1946 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)947 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)948 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF949 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)950 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)951 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)952 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)953 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)954 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)955 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)956 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3957main_body:958 %v = call <4 x float> @llvm.amdgcn.image.sample.c.1d.v4f32.f16(i32 15, float %zcompare, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)959 ret <4 x float> %v960}961 962define amdgpu_ps <4 x float> @sample_c_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %t) {963 ; GFX9-LABEL: name: sample_c_2d964 ; GFX9: bb.1.main_body:965 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2966 ; GFX9-NEXT: {{ $}}967 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2968 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3969 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4970 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5971 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6972 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7973 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8974 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9975 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)976 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10977 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11978 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12979 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13980 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)981 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0982 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1983 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)984 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2985 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)986 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)987 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)988 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)989 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.2d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)990 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)991 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)992 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)993 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)994 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)995 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3996 ;997 ; GFX10-LABEL: name: sample_c_2d998 ; GFX10: bb.1.main_body:999 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21000 ; GFX10-NEXT: {{ $}}1001 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21002 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31003 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41004 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51005 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61006 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71007 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81008 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91009 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1010 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101011 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111012 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121013 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131014 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1015 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01016 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11017 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1018 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21019 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1020 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1021 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1022 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1023 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1024 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1025 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1026 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1027 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1028 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31029 ;1030 ; GFX11-LABEL: name: sample_c_2d1031 ; GFX11: bb.1.main_body:1032 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21033 ; GFX11-NEXT: {{ $}}1034 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21035 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31036 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41037 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51038 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61039 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71040 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81041 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91042 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1043 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101044 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111045 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121046 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131047 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1048 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01049 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11050 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1051 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21052 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1053 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1054 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1055 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1056 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1057 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1058 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1059 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1060 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1061 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31062 ;1063 ; GFX12-LABEL: name: sample_c_2d1064 ; GFX12: bb.1.main_body:1065 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21066 ; GFX12-NEXT: {{ $}}1067 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21068 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31069 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41070 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51071 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61072 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71073 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81074 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91075 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1076 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101077 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111078 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121079 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131080 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1081 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01082 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11083 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1084 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21085 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1086 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1087 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1088 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1089 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1090 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1091 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1092 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1093 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1094 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31095main_body:1096 %v = call <4 x float> @llvm.amdgcn.image.sample.c.2d.v4f32.f16(i32 15, float %zcompare, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1097 ret <4 x float> %v1098}1099 1100define amdgpu_ps <4 x float> @sample_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %clamp) {1101 ; GFX9-LABEL: name: sample_cl_1d1102 ; GFX9: bb.1.main_body:1103 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11104 ; GFX9-NEXT: {{ $}}1105 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21106 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31107 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41108 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51109 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61110 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71111 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81112 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91113 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1114 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101115 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111116 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121117 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131118 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1119 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01120 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1121 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11122 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1123 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1124 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1125 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1126 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1127 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1128 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1129 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1130 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31131 ;1132 ; GFX10-LABEL: name: sample_cl_1d1133 ; GFX10: bb.1.main_body:1134 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11135 ; GFX10-NEXT: {{ $}}1136 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21137 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31138 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41139 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51140 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61141 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71142 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81143 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91144 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1145 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101146 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111147 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121148 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131149 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1150 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01151 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1152 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11153 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1154 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1155 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1156 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1157 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1158 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1159 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1160 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1161 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31162 ;1163 ; GFX11-LABEL: name: sample_cl_1d1164 ; GFX11: bb.1.main_body:1165 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11166 ; GFX11-NEXT: {{ $}}1167 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21168 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31169 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41170 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51171 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61172 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71173 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81174 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91175 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1176 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101177 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111178 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121179 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131180 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1181 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01182 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1183 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11184 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1185 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1186 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1187 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1188 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1189 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1190 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1191 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1192 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31193 ;1194 ; GFX12-LABEL: name: sample_cl_1d1195 ; GFX12: bb.1.main_body:1196 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11197 ; GFX12-NEXT: {{ $}}1198 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21199 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31200 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41201 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51202 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61203 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71204 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81205 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91206 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1207 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101208 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111209 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121210 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131211 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1212 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01213 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1214 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11215 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1216 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1217 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1218 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1219 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1220 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1221 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1222 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1223 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31224main_body:1225 %v = call <4 x float> @llvm.amdgcn.image.sample.cl.1d.v4f32.f16(i32 15, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1226 ret <4 x float> %v1227}1228 1229define amdgpu_ps <4 x float> @sample_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %clamp) {1230 ; GFX9-LABEL: name: sample_cl_2d1231 ; GFX9: bb.1.main_body:1232 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21233 ; GFX9-NEXT: {{ $}}1234 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21235 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31236 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41237 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51238 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61239 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71240 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81241 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91242 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1243 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101244 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111245 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121246 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131247 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1248 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01249 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1250 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11251 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1252 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21253 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1254 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1255 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1256 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1257 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)1258 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.2d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1259 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1260 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1261 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1262 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1263 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1264 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31265 ;1266 ; GFX10-LABEL: name: sample_cl_2d1267 ; GFX10: bb.1.main_body:1268 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21269 ; GFX10-NEXT: {{ $}}1270 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21271 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31272 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41273 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51274 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61275 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71276 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81277 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91278 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1279 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101280 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111281 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121282 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131283 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1284 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01285 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1286 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11287 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1288 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21289 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1290 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1291 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1292 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1293 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1294 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1295 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1296 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1297 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1298 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1299 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31300 ;1301 ; GFX11-LABEL: name: sample_cl_2d1302 ; GFX11: bb.1.main_body:1303 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21304 ; GFX11-NEXT: {{ $}}1305 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21306 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31307 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41308 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51309 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61310 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71311 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81312 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91313 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1314 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101315 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111316 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121317 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131318 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1319 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01320 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1321 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11322 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1323 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21324 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1325 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1326 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1327 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1328 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1329 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1330 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1331 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1332 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1333 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1334 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31335 ;1336 ; GFX12-LABEL: name: sample_cl_2d1337 ; GFX12: bb.1.main_body:1338 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21339 ; GFX12-NEXT: {{ $}}1340 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21341 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31342 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41343 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51344 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61345 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71346 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81347 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91348 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1349 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101350 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111351 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121352 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131353 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1354 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01355 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1356 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11357 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1358 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21359 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1360 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1361 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1362 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1363 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1364 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1365 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1366 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1367 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1368 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1369 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31370main_body:1371 %v = call <4 x float> @llvm.amdgcn.image.sample.cl.2d.v4f32.f16(i32 15, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1372 ret <4 x float> %v1373}1374 1375define amdgpu_ps <4 x float> @sample_c_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %clamp) {1376 ; GFX9-LABEL: name: sample_c_cl_1d1377 ; GFX9: bb.1.main_body:1378 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21379 ; GFX9-NEXT: {{ $}}1380 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21381 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31382 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41383 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51384 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61385 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71386 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81387 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91388 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1389 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101390 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111391 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121392 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131393 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1394 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01395 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11396 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1397 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21398 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1399 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1400 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1401 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)1402 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1403 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1404 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1405 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1406 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1407 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1408 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31409 ;1410 ; GFX10-LABEL: name: sample_c_cl_1d1411 ; GFX10: bb.1.main_body:1412 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21413 ; GFX10-NEXT: {{ $}}1414 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21415 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31416 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41417 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51418 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61419 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71420 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81421 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91422 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1423 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101424 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111425 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121426 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131427 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1428 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01429 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11430 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1431 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21432 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1433 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1434 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1435 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1436 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1437 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1438 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1439 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1440 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1441 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31442 ;1443 ; GFX11-LABEL: name: sample_c_cl_1d1444 ; GFX11: bb.1.main_body:1445 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21446 ; GFX11-NEXT: {{ $}}1447 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21448 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31449 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41450 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51451 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61452 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71453 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81454 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91455 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1456 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101457 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111458 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121459 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131460 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1461 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01462 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11463 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1464 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21465 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1466 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1467 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1468 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1469 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1470 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1471 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1472 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1473 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1474 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31475 ;1476 ; GFX12-LABEL: name: sample_c_cl_1d1477 ; GFX12: bb.1.main_body:1478 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21479 ; GFX12-NEXT: {{ $}}1480 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21481 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31482 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41483 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51484 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61485 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71486 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81487 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91488 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1489 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101490 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111491 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121492 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131493 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1494 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01495 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11496 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1497 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21498 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1499 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1500 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1501 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1502 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1503 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1504 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1505 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1506 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1507 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31508main_body:1509 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cl.1d.v4f32.f16(i32 15, float %zcompare, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1510 ret <4 x float> %v1511}1512 1513define amdgpu_ps <4 x float> @sample_c_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %t, half %clamp) {1514 ; GFX9-LABEL: name: sample_c_cl_2d1515 ; GFX9: bb.1.main_body:1516 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr31517 ; GFX9-NEXT: {{ $}}1518 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21519 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31520 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41521 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51522 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61523 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71524 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81525 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91526 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1527 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101528 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111529 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121530 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131531 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1532 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01533 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11534 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1535 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21536 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1537 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr31538 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)1539 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1540 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1541 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1542 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1543 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)1544 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1545 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1546 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1547 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1548 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1549 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1550 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31551 ;1552 ; GFX10-LABEL: name: sample_c_cl_2d1553 ; GFX10: bb.1.main_body:1554 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr31555 ; GFX10-NEXT: {{ $}}1556 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21557 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31558 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41559 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51560 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61561 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71562 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81563 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91564 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1565 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101566 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111567 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121568 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131569 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1570 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01571 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11572 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1573 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21574 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1575 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr31576 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)1577 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1578 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1579 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1580 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1581 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1582 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1583 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1584 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1585 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1586 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1587 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31588 ;1589 ; GFX11-LABEL: name: sample_c_cl_2d1590 ; GFX11: bb.1.main_body:1591 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr31592 ; GFX11-NEXT: {{ $}}1593 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21594 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31595 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41596 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51597 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61598 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71599 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81600 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91601 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1602 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101603 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111604 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121605 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131606 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1607 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01608 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11609 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1610 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21611 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1612 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr31613 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)1614 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1615 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1616 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1617 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1618 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1619 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1620 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1621 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1622 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1623 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1624 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31625 ;1626 ; GFX12-LABEL: name: sample_c_cl_2d1627 ; GFX12: bb.1.main_body:1628 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr31629 ; GFX12-NEXT: {{ $}}1630 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21631 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31632 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41633 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51634 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61635 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71636 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81637 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91638 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1639 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101640 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111641 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121642 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131643 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1644 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01645 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11646 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1647 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21648 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1649 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr31650 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)1651 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)1652 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)1653 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1654 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)1655 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1656 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1657 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1658 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1659 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1660 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1661 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31662main_body:1663 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cl.2d.v4f32.f16(i32 15, float %zcompare, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1664 ret <4 x float> %v1665}1666 1667define amdgpu_ps <4 x float> @sample_b_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, half %s) {1668 ; GFX9-LABEL: name: sample_b_1d1669 ; GFX9: bb.1.main_body:1670 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11671 ; GFX9-NEXT: {{ $}}1672 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21673 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31674 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41675 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51676 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61677 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71678 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81679 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91680 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1681 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101682 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111683 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121684 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131685 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1686 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01687 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1688 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11689 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1690 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1691 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1692 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)1693 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)1694 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1695 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1696 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1697 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1698 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1699 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1700 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31701 ;1702 ; GFX10-LABEL: name: sample_b_1d1703 ; GFX10: bb.1.main_body:1704 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11705 ; GFX10-NEXT: {{ $}}1706 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21707 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31708 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41709 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51710 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61711 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71712 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81713 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91714 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1715 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101716 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111717 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121718 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131719 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1720 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01721 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1722 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11723 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1724 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1725 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1726 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)1727 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1728 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1729 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1730 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1731 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1732 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1733 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31734 ;1735 ; GFX11-LABEL: name: sample_b_1d1736 ; GFX11: bb.1.main_body:1737 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11738 ; GFX11-NEXT: {{ $}}1739 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21740 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31741 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41742 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51743 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61744 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71745 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81746 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91747 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1748 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101749 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111750 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121751 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131752 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1753 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01754 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1755 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11756 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1757 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1758 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1759 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)1760 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1761 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1762 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1763 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1764 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1765 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1766 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31767 ;1768 ; GFX12-LABEL: name: sample_b_1d1769 ; GFX12: bb.1.main_body:1770 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr11771 ; GFX12-NEXT: {{ $}}1772 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21773 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31774 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41775 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51776 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61777 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71778 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81779 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91780 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1781 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101782 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111783 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121784 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131785 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1786 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01787 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1788 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11789 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1790 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1791 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1792 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)1793 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1794 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1795 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1796 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1797 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1798 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1799 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31800main_body:1801 %v = call <4 x float> @llvm.amdgcn.image.sample.b.1d.v4f32.f16.f16(i32 15, half %bias, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1802 ret <4 x float> %v1803}1804 1805define amdgpu_ps <4 x float> @sample_b_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, half %s, half %t) {1806 ; GFX9-LABEL: name: sample_b_2d1807 ; GFX9: bb.1.main_body:1808 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21809 ; GFX9-NEXT: {{ $}}1810 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21811 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31812 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41813 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51814 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61815 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71816 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81817 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91818 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1819 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101820 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111821 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121822 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131823 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1824 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01825 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1826 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11827 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1828 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21829 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1830 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1831 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1832 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)1833 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)1834 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.2d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1835 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1836 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1837 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1838 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1839 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1840 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31841 ;1842 ; GFX10-LABEL: name: sample_b_2d1843 ; GFX10: bb.1.main_body:1844 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21845 ; GFX10-NEXT: {{ $}}1846 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21847 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31848 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41849 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51850 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61851 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71852 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81853 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91854 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1855 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101856 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111857 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121858 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131859 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1860 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01861 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1862 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11863 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1864 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21865 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1866 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1867 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1868 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)1869 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1870 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1871 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)1872 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)1873 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)1874 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)1875 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31876 ;1877 ; GFX11-LABEL: name: sample_b_2d1878 ; GFX11: bb.1.main_body:1879 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21880 ; GFX11-NEXT: {{ $}}1881 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21882 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31883 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41884 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51885 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61886 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71887 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81888 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91889 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1890 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101891 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111892 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121893 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131894 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1895 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01896 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1897 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11898 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1899 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21900 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1901 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1902 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1903 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)1904 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1905 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1906 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)1907 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)1908 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)1909 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)1910 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31911 ;1912 ; GFX12-LABEL: name: sample_b_2d1913 ; GFX12: bb.1.main_body:1914 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21915 ; GFX12-NEXT: {{ $}}1916 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21917 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31918 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41919 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51920 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61921 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71922 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81923 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91924 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1925 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101926 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111927 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121928 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131929 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1930 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01931 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1932 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11933 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)1934 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21935 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1936 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1937 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1938 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)1939 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)1940 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1941 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)1942 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)1943 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)1944 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)1945 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31946main_body:1947 %v = call <4 x float> @llvm.amdgcn.image.sample.b.2d.v4f32.f16.f16(i32 15, half %bias, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)1948 ret <4 x float> %v1949}1950 1951define amdgpu_ps <4 x float> @sample_c_b_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, float %zcompare, half %s) {1952 ; GFX9-LABEL: name: sample_c_b_1d1953 ; GFX9: bb.1.main_body:1954 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21955 ; GFX9-NEXT: {{ $}}1956 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21957 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31958 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41959 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51960 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61961 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71962 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81963 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr91964 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)1965 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr101966 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr111967 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr121968 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr131969 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)1970 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr01971 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)1972 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr11973 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr21974 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)1975 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF1976 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)1977 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)1978 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)1979 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)1980 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)1981 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)1982 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)1983 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)1984 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)1985 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)1986 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr31987 ;1988 ; GFX10-LABEL: name: sample_c_b_1d1989 ; GFX10: bb.1.main_body:1990 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr21991 ; GFX10-NEXT: {{ $}}1992 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr21993 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr31994 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr41995 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr51996 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr61997 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr71998 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr81999 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92000 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2001 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102002 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112003 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122004 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132005 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2006 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02007 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2008 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12009 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22010 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2011 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2012 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2013 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2014 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2015 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2016 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2017 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2018 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2019 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2020 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2021 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32022 ;2023 ; GFX11-LABEL: name: sample_c_b_1d2024 ; GFX11: bb.1.main_body:2025 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22026 ; GFX11-NEXT: {{ $}}2027 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22028 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32029 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42030 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52031 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62032 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72033 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82034 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92035 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2036 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102037 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112038 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122039 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132040 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2041 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02042 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2043 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12044 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22045 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2046 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2047 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2048 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2049 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2050 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2051 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2052 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2053 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2054 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2055 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2056 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32057 ;2058 ; GFX12-LABEL: name: sample_c_b_1d2059 ; GFX12: bb.1.main_body:2060 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22061 ; GFX12-NEXT: {{ $}}2062 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22063 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32064 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42065 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52066 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62067 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72068 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82069 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92070 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2071 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102072 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112073 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122074 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132075 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2076 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02077 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2078 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12079 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22080 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2081 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2082 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2083 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2084 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2085 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2086 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2087 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2088 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2089 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2090 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2091 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32092main_body:2093 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.1d.v4f32.f16.f16(i32 15, half %bias, float %zcompare, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2094 ret <4 x float> %v2095}2096 2097define amdgpu_ps <4 x float> @sample_c_b_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, float %zcompare, half %s, half %t) {2098 ; GFX9-LABEL: name: sample_c_b_2d2099 ; GFX9: bb.1.main_body:2100 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32101 ; GFX9-NEXT: {{ $}}2102 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22103 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32104 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42105 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52106 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62107 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72108 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82109 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92110 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2111 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102112 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112113 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122114 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132115 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2116 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02117 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2118 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12119 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22120 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2121 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32122 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2123 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2124 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2125 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2126 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2127 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)2128 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2129 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2130 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2131 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2132 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2133 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2134 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32135 ;2136 ; GFX10-LABEL: name: sample_c_b_2d2137 ; GFX10: bb.1.main_body:2138 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32139 ; GFX10-NEXT: {{ $}}2140 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22141 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32142 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42143 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52144 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62145 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72146 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82147 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92148 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2149 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102150 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112151 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122152 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132153 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2154 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02155 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2156 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12157 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22158 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2159 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32160 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2161 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2162 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2163 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2164 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2165 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2166 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2167 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2168 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2169 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2170 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2171 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32172 ;2173 ; GFX11-LABEL: name: sample_c_b_2d2174 ; GFX11: bb.1.main_body:2175 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32176 ; GFX11-NEXT: {{ $}}2177 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22178 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32179 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42180 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52181 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62182 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72183 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82184 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92185 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2186 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102187 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112188 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122189 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132190 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2191 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02192 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2193 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12194 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22195 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2196 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32197 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2198 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2199 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2200 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2201 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2202 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2203 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2204 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2205 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2206 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2207 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2208 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32209 ;2210 ; GFX12-LABEL: name: sample_c_b_2d2211 ; GFX12: bb.1.main_body:2212 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32213 ; GFX12-NEXT: {{ $}}2214 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22215 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32216 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42217 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52218 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62219 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72220 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82221 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92222 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2223 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102224 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112225 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122226 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132227 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2228 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02229 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2230 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12231 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22232 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2233 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32234 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2235 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2236 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2237 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2238 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2239 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2240 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2241 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2242 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2243 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2244 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2245 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32246main_body:2247 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.2d.v4f32.f16.f16(i32 15, half %bias, float %zcompare, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2248 ret <4 x float> %v2249}2250 2251define amdgpu_ps <4 x float> @sample_b_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, half %s, half %clamp) {2252 ; GFX9-LABEL: name: sample_b_cl_1d2253 ; GFX9: bb.1.main_body:2254 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22255 ; GFX9-NEXT: {{ $}}2256 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22257 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32258 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42259 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52260 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62261 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72262 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82263 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92264 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2265 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102266 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112267 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122268 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132269 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2270 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02271 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2272 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12273 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2274 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22275 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2276 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2277 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2278 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2279 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)2280 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2281 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2282 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2283 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2284 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2285 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2286 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32287 ;2288 ; GFX10-LABEL: name: sample_b_cl_1d2289 ; GFX10: bb.1.main_body:2290 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22291 ; GFX10-NEXT: {{ $}}2292 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22293 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32294 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42295 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52296 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62297 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72298 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82299 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92300 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2301 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102302 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112303 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122304 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132305 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2306 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02307 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2308 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12309 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2310 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22311 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2312 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2313 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2314 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2315 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2316 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2317 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2318 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2319 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2320 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2321 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32322 ;2323 ; GFX11-LABEL: name: sample_b_cl_1d2324 ; GFX11: bb.1.main_body:2325 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22326 ; GFX11-NEXT: {{ $}}2327 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22328 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32329 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42330 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52331 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62332 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72333 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82334 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92335 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2336 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102337 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112338 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122339 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132340 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2341 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02342 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2343 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12344 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2345 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22346 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2347 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2348 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2349 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2350 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2351 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2352 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2353 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2354 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2355 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2356 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32357 ;2358 ; GFX12-LABEL: name: sample_b_cl_1d2359 ; GFX12: bb.1.main_body:2360 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22361 ; GFX12-NEXT: {{ $}}2362 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22363 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32364 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42365 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52366 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62367 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72368 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82369 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92370 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2371 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102372 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112373 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122374 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132375 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2376 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02377 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2378 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12379 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2380 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22381 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2382 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2383 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2384 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2385 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2386 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2387 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2388 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2389 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2390 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2391 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32392main_body:2393 %v = call <4 x float> @llvm.amdgcn.image.sample.b.cl.1d.v4f32.f16.f16(i32 15, half %bias, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2394 ret <4 x float> %v2395}2396 2397define amdgpu_ps <4 x float> @sample_b_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, half %s, half %t, half %clamp) {2398 ; GFX9-LABEL: name: sample_b_cl_2d2399 ; GFX9: bb.1.main_body:2400 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32401 ; GFX9-NEXT: {{ $}}2402 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22403 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32404 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42405 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52406 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62407 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72408 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82409 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92410 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2411 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102412 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112413 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122414 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132415 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2416 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02417 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2418 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12419 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2420 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22421 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2422 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32423 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2424 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2425 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2426 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2427 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2428 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)2429 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2430 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2431 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2432 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2433 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2434 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2435 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32436 ;2437 ; GFX10-LABEL: name: sample_b_cl_2d2438 ; GFX10: bb.1.main_body:2439 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32440 ; GFX10-NEXT: {{ $}}2441 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22442 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32443 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42444 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52445 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62446 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72447 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82448 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92449 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2450 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102451 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112452 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122453 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132454 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2455 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02456 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2457 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12458 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2459 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22460 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2461 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32462 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2463 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2464 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2465 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2466 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2467 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2468 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2469 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2470 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2471 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2472 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2473 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32474 ;2475 ; GFX11-LABEL: name: sample_b_cl_2d2476 ; GFX11: bb.1.main_body:2477 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32478 ; GFX11-NEXT: {{ $}}2479 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22480 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32481 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42482 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52483 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62484 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72485 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82486 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92487 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2488 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102489 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112490 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122491 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132492 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2493 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02494 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2495 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12496 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2497 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22498 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2499 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32500 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2501 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2502 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2503 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2504 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2505 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2506 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2507 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2508 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2509 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2510 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2511 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32512 ;2513 ; GFX12-LABEL: name: sample_b_cl_2d2514 ; GFX12: bb.1.main_body:2515 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32516 ; GFX12-NEXT: {{ $}}2517 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22518 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32519 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42520 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52521 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62522 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72523 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82524 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92525 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2526 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102527 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112528 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122529 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132530 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2531 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02532 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2533 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12534 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2535 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22536 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2537 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32538 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2539 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2540 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2541 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2542 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2543 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2544 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2545 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2546 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2547 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2548 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2549 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32550main_body:2551 %v = call <4 x float> @llvm.amdgcn.image.sample.b.cl.2d.v4f32.f16.f16(i32 15, half %bias, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2552 ret <4 x float> %v2553}2554 2555define amdgpu_ps <4 x float> @sample_c_b_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, float %zcompare, half %s, half %clamp) {2556 ; GFX9-LABEL: name: sample_c_b_cl_1d2557 ; GFX9: bb.1.main_body:2558 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32559 ; GFX9-NEXT: {{ $}}2560 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22561 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32562 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42563 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52564 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62565 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72566 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82567 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92568 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2569 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102570 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112571 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122572 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132573 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2574 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02575 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2576 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12577 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22578 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2579 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32580 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2581 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2582 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2583 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2584 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2585 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)2586 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2587 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2588 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2589 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2590 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2591 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2592 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32593 ;2594 ; GFX10-LABEL: name: sample_c_b_cl_1d2595 ; GFX10: bb.1.main_body:2596 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32597 ; GFX10-NEXT: {{ $}}2598 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22599 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32600 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42601 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52602 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62603 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72604 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82605 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92606 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2607 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102608 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112609 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122610 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132611 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2612 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02613 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2614 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12615 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22616 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2617 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32618 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2619 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2620 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2621 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2622 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2623 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2624 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2625 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2626 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2627 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2628 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2629 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32630 ;2631 ; GFX11-LABEL: name: sample_c_b_cl_1d2632 ; GFX11: bb.1.main_body:2633 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32634 ; GFX11-NEXT: {{ $}}2635 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22636 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32637 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42638 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52639 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62640 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72641 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82642 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92643 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2644 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102645 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112646 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122647 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132648 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2649 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02650 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2651 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12652 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22653 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2654 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32655 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2656 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2657 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2658 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2659 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2660 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2661 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2662 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2663 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2664 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2665 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2666 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32667 ;2668 ; GFX12-LABEL: name: sample_c_b_cl_1d2669 ; GFX12: bb.1.main_body:2670 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr32671 ; GFX12-NEXT: {{ $}}2672 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22673 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32674 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42675 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52676 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62677 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72678 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82679 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92680 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2681 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102682 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112683 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122684 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132685 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2686 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02687 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2688 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12689 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22690 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2691 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32692 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2693 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2694 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2695 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2696 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2697 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2698 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2699 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2700 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2701 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2702 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2703 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32704main_body:2705 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.cl.1d.v4f32.f16.f16(i32 15, half %bias, float %zcompare, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2706 ret <4 x float> %v2707}2708 2709define amdgpu_ps <4 x float> @sample_c_b_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %bias, float %zcompare, half %s, half %t, half %clamp) {2710 ; GFX9-LABEL: name: sample_c_b_cl_2d2711 ; GFX9: bb.1.main_body:2712 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr42713 ; GFX9-NEXT: {{ $}}2714 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22715 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32716 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42717 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52718 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62719 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72720 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82721 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92722 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2723 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102724 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112725 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122726 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132727 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2728 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02729 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2730 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12731 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22732 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2733 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32734 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2735 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr42736 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)2737 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2738 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2739 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2740 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2741 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2742 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)2743 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.2d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2744 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2745 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2746 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2747 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2748 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2749 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32750 ;2751 ; GFX10-LABEL: name: sample_c_b_cl_2d2752 ; GFX10: bb.1.main_body:2753 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr42754 ; GFX10-NEXT: {{ $}}2755 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22756 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32757 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42758 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52759 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62760 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72761 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82762 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92763 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2764 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102765 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112766 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122767 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132768 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2769 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02770 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2771 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12772 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22773 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2774 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32775 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2776 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr42777 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)2778 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2779 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2780 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2781 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2782 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2783 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2784 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2785 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2786 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2787 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2788 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2789 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32790 ;2791 ; GFX11-LABEL: name: sample_c_b_cl_2d2792 ; GFX11: bb.1.main_body:2793 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr42794 ; GFX11-NEXT: {{ $}}2795 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22796 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32797 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42798 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52799 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62800 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72801 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82802 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92803 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2804 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102805 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112806 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122807 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132808 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2809 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02810 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2811 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12812 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22813 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2814 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32815 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2816 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr42817 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)2818 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2819 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2820 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2821 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2822 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2823 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2824 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2825 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2826 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2827 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2828 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2829 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32830 ;2831 ; GFX12-LABEL: name: sample_c_b_cl_2d2832 ; GFX12: bb.1.main_body:2833 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr42834 ; GFX12-NEXT: {{ $}}2835 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22836 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32837 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42838 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52839 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62840 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72841 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82842 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92843 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2844 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102845 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112846 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122847 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132848 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2849 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02850 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2851 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12852 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22853 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2854 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr32855 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)2856 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr42857 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)2858 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2859 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2860 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)2861 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[TRUNC2]](s16)2862 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[DEF]](s16)2863 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BITCAST]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)2864 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2865 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)2866 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)2867 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)2868 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)2869 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32870main_body:2871 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.cl.2d.v4f32.f16.f16(i32 15, half %bias, float %zcompare, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)2872 ret <4 x float> %v2873}2874 2875define amdgpu_ps <4 x float> @sample_d_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s) {2876 ; GFX9-LABEL: name: sample_d_1d2877 ; GFX9: bb.1.main_body:2878 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22879 ; GFX9-NEXT: {{ $}}2880 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22881 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32882 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42883 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52884 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62885 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72886 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82887 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92888 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2889 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102890 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112891 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122892 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132893 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2894 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02895 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2896 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12897 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2898 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22899 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2900 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2901 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2902 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2903 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)2904 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)2905 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2906 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2907 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)2908 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)2909 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)2910 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)2911 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32912 ;2913 ; GFX10-LABEL: name: sample_d_1d2914 ; GFX10: bb.1.main_body:2915 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22916 ; GFX10-NEXT: {{ $}}2917 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22918 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32919 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42920 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52921 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62922 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72923 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82924 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92925 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2926 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102927 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112928 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122929 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132930 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2931 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02932 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2933 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12934 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2935 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22936 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2937 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2938 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2939 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2940 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)2941 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2942 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2943 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)2944 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)2945 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)2946 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)2947 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32948 ;2949 ; GFX11-LABEL: name: sample_d_1d2950 ; GFX11: bb.1.main_body:2951 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22952 ; GFX11-NEXT: {{ $}}2953 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22954 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32955 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42956 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52957 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62958 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72959 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82960 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92961 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2962 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102963 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr112964 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr122965 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr132966 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)2967 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr02968 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)2969 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr12970 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)2971 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr22972 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)2973 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF2974 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)2975 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)2976 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)2977 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)2978 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)2979 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)2980 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)2981 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)2982 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)2983 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr32984 ;2985 ; GFX12-LABEL: name: sample_d_1d2986 ; GFX12: bb.1.main_body:2987 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr22988 ; GFX12-NEXT: {{ $}}2989 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr22990 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr32991 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr42992 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr52993 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr62994 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr72995 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr82996 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr92997 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)2998 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr102999 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113000 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123001 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133002 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3003 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03004 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3005 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13006 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3007 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23008 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3009 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3010 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3011 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3012 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3013 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3014 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3015 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3016 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3017 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3018 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3019 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33020main_body:3021 %v = call <4 x float> @llvm.amdgcn.image.sample.d.1d.v4f32.f16.f16(i32 15, half %dsdh, half %dsdv, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3022 ret <4 x float> %v3023}3024 3025define amdgpu_ps <4 x float> @sample_d_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t) {3026 ; GFX9-LABEL: name: sample_d_2d3027 ; GFX9: bb.1.main_body:3028 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr53029 ; GFX9-NEXT: {{ $}}3030 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23031 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33032 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43033 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53034 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63035 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73036 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83037 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93038 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3039 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103040 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113041 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123042 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133043 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3044 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03045 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3046 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13047 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3048 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23049 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3050 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33051 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3052 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43053 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3054 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53055 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3056 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3057 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3058 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3059 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)3060 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3061 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3062 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3063 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3064 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3065 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3066 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33067 ;3068 ; GFX10-LABEL: name: sample_d_2d3069 ; GFX10: bb.1.main_body:3070 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr53071 ; GFX10-NEXT: {{ $}}3072 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23073 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33074 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43075 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53076 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63077 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73078 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83079 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93080 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3081 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103082 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113083 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123084 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133085 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3086 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03087 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3088 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13089 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3090 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23091 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3092 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33093 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3094 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43095 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3096 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53097 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3098 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3099 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3100 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3101 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3102 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3103 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3104 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3105 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3106 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3107 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33108 ;3109 ; GFX11-LABEL: name: sample_d_2d3110 ; GFX11: bb.1.main_body:3111 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr53112 ; GFX11-NEXT: {{ $}}3113 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23114 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33115 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43116 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53117 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63118 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73119 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83120 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93121 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3122 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103123 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113124 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123125 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133126 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3127 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03128 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3129 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13130 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3131 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23132 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3133 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33134 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3135 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43136 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3137 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53138 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3139 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3140 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3141 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3142 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3143 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3144 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)3145 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)3146 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)3147 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)3148 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33149 ;3150 ; GFX12-LABEL: name: sample_d_2d3151 ; GFX12: bb.1.main_body:3152 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr53153 ; GFX12-NEXT: {{ $}}3154 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23155 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33156 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43157 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53158 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63159 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73160 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83161 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93162 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3163 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103164 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113165 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123166 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133167 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3168 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03169 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3170 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13171 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3172 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23173 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3174 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33175 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3176 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43177 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3178 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53179 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3180 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3181 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3182 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3183 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3184 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3185 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3186 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3187 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3188 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3189 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33190main_body:3191 %v = call <4 x float> @llvm.amdgcn.image.sample.d.2d.v4f32.f16.f16(i32 15, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3192 ret <4 x float> %v3193}3194 3195define amdgpu_ps <4 x float> @sample_d_3d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dtdh, half %drdh, half %dsdv, half %dtdv, half %drdv, half %s, half %t, half %r) {3196 ; GFX9-LABEL: name: sample_d_3d3197 ; GFX9: bb.1.main_body:3198 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr83199 ; GFX9-NEXT: {{ $}}3200 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23201 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33202 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43203 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53204 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63205 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73206 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83207 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93208 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3209 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103210 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113211 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123212 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133213 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3214 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03215 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3216 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13217 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3218 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23219 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3220 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33221 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3222 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43223 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3224 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53225 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3226 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63227 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3228 ; GFX9-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr73229 ; GFX9-NEXT: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)3230 ; GFX9-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr83231 ; GFX9-NEXT: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)3232 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3233 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3234 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3235 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[TRUNC4]](s16)3236 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC5]](s16), [[DEF]](s16)3237 ; GFX9-NEXT: [[BUILD_VECTOR6:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[TRUNC7]](s16)3238 ; GFX9-NEXT: [[BUILD_VECTOR7:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC8]](s16), [[DEF]](s16)3239 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), [[BUILD_VECTOR6]](<2 x s16>), [[BUILD_VECTOR7]](<2 x s16>)3240 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.3d), 15, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3241 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3242 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3243 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3244 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3245 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3246 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33247 ;3248 ; GFX10-LABEL: name: sample_d_3d3249 ; GFX10: bb.1.main_body:3250 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr83251 ; GFX10-NEXT: {{ $}}3252 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23253 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33254 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43255 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53256 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63257 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73258 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83259 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93260 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3261 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103262 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113263 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123264 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133265 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3266 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03267 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3268 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13269 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3270 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23271 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3272 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33273 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3274 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43275 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3276 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53277 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3278 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63279 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3280 ; GFX10-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr73281 ; GFX10-NEXT: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)3282 ; GFX10-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr83283 ; GFX10-NEXT: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)3284 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3285 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3286 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3287 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[TRUNC4]](s16)3288 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC5]](s16), [[DEF]](s16)3289 ; GFX10-NEXT: [[BUILD_VECTOR6:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[TRUNC7]](s16)3290 ; GFX10-NEXT: [[BUILD_VECTOR7:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC8]](s16), [[DEF]](s16)3291 ; GFX10-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), [[BUILD_VECTOR6]](<2 x s16>), [[BUILD_VECTOR7]](<2 x s16>)3292 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.3d), 15, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3293 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3294 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3295 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3296 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3297 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3298 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33299 ;3300 ; GFX11-LABEL: name: sample_d_3d3301 ; GFX11: bb.1.main_body:3302 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr83303 ; GFX11-NEXT: {{ $}}3304 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23305 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33306 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43307 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53308 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63309 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73310 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83311 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93312 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3313 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103314 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113315 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123316 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133317 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3318 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03319 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3320 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13321 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3322 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23323 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3324 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33325 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3326 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43327 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3328 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53329 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3330 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63331 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3332 ; GFX11-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr73333 ; GFX11-NEXT: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)3334 ; GFX11-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr83335 ; GFX11-NEXT: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)3336 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3337 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3338 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3339 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[TRUNC4]](s16)3340 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC5]](s16), [[DEF]](s16)3341 ; GFX11-NEXT: [[BUILD_VECTOR6:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[TRUNC7]](s16)3342 ; GFX11-NEXT: [[BUILD_VECTOR7:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC8]](s16), [[DEF]](s16)3343 ; GFX11-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR6]](<2 x s16>), [[BUILD_VECTOR7]](<2 x s16>)3344 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.3d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3345 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3346 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)3347 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)3348 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)3349 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)3350 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33351 ;3352 ; GFX12-LABEL: name: sample_d_3d3353 ; GFX12: bb.1.main_body:3354 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr83355 ; GFX12-NEXT: {{ $}}3356 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23357 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33358 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43359 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53360 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63361 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73362 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83363 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93364 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3365 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103366 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113367 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123368 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133369 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3370 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03371 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3372 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13373 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3374 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23375 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3376 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33377 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3378 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43379 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3380 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53381 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3382 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63383 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3384 ; GFX12-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr73385 ; GFX12-NEXT: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)3386 ; GFX12-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr83387 ; GFX12-NEXT: [[TRUNC8:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)3388 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3389 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3390 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3391 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC3]](s16), [[TRUNC4]](s16)3392 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC5]](s16), [[DEF]](s16)3393 ; GFX12-NEXT: [[BUILD_VECTOR6:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[TRUNC7]](s16)3394 ; GFX12-NEXT: [[BUILD_VECTOR7:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC8]](s16), [[DEF]](s16)3395 ; GFX12-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR5]](<2 x s16>), [[BUILD_VECTOR6]](<2 x s16>), [[BUILD_VECTOR7]](<2 x s16>)3396 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.3d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3397 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3398 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3399 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3400 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3401 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3402 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33403main_body:3404 %v = call <4 x float> @llvm.amdgcn.image.sample.d.3d.v4f32.f16.f16(i32 15, half %dsdh, half %dtdh, half %drdh, half %dsdv, half %dtdv, half %drdv, half %s, half %t, half %r, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3405 ret <4 x float> %v3406}3407 3408define amdgpu_ps <4 x float> @sample_c_d_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dsdv, half %s) {3409 ; GFX9-LABEL: name: sample_c_d_1d3410 ; GFX9: bb.1.main_body:3411 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33412 ; GFX9-NEXT: {{ $}}3413 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23414 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33415 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43416 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53417 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63418 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73419 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83420 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93421 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3422 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103423 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113424 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123425 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133426 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3427 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03428 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13429 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3430 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23431 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3432 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33433 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3434 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3435 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3436 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3437 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3438 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3439 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)3440 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.1d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3441 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3442 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3443 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3444 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3445 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3446 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33447 ;3448 ; GFX10-LABEL: name: sample_c_d_1d3449 ; GFX10: bb.1.main_body:3450 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33451 ; GFX10-NEXT: {{ $}}3452 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23453 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33454 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43455 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53456 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63457 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73458 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83459 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93460 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3461 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103462 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113463 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123464 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133465 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3466 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03467 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13468 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3469 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23470 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3471 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33472 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3473 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3474 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3475 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3476 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3477 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3478 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3479 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3480 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3481 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3482 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3483 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3484 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33485 ;3486 ; GFX11-LABEL: name: sample_c_d_1d3487 ; GFX11: bb.1.main_body:3488 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33489 ; GFX11-NEXT: {{ $}}3490 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23491 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33492 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43493 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53494 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63495 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73496 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83497 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93498 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3499 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103500 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113501 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123502 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133503 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3504 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03505 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13506 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3507 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23508 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3509 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33510 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3511 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3512 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3513 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3514 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3515 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3516 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3517 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3518 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)3519 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)3520 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)3521 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)3522 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33523 ;3524 ; GFX12-LABEL: name: sample_c_d_1d3525 ; GFX12: bb.1.main_body:3526 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33527 ; GFX12-NEXT: {{ $}}3528 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23529 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33530 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43531 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53532 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63533 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73534 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83535 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93536 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3537 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103538 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113539 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123540 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133541 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3542 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03543 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13544 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3545 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23546 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3547 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33548 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3549 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3550 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3551 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3552 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3553 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)3554 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3555 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3556 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3557 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3558 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3559 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3560 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33561main_body:3562 %v = call <4 x float> @llvm.amdgcn.image.sample.c.d.1d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dsdv, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3563 ret <4 x float> %v3564}3565 3566define amdgpu_ps <4 x float> @sample_c_d_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t) {3567 ; GFX9-LABEL: name: sample_c_d_2d3568 ; GFX9: bb.1.main_body:3569 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63570 ; GFX9-NEXT: {{ $}}3571 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23572 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33573 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43574 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53575 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63576 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73577 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83578 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93579 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3580 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103581 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113582 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123583 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133584 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3585 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03586 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13587 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3588 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23589 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3590 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33591 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3592 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43593 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3594 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53595 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3596 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63597 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3598 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3599 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3600 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3601 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3602 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)3603 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.2d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3604 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3605 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3606 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3607 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3608 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3609 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33610 ;3611 ; GFX10-LABEL: name: sample_c_d_2d3612 ; GFX10: bb.1.main_body:3613 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63614 ; GFX10-NEXT: {{ $}}3615 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23616 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33617 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43618 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53619 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63620 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73621 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83622 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93623 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3624 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103625 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113626 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123627 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133628 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3629 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03630 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13631 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3632 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23633 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3634 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33635 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3636 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43637 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3638 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53639 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3640 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63641 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3642 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3643 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3644 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3645 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3646 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3647 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3648 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3649 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3650 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3651 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3652 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33653 ;3654 ; GFX11-LABEL: name: sample_c_d_2d3655 ; GFX11: bb.1.main_body:3656 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63657 ; GFX11-NEXT: {{ $}}3658 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23659 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33660 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43661 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53662 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63663 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73664 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83665 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93666 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3667 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103668 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113669 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123670 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133671 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3672 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03673 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13674 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3675 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23676 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3677 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33678 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3679 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43680 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3681 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53682 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3683 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63684 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3685 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3686 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3687 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3688 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3689 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3690 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3691 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)3692 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)3693 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)3694 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)3695 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33696 ;3697 ; GFX12-LABEL: name: sample_c_d_2d3698 ; GFX12: bb.1.main_body:3699 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63700 ; GFX12-NEXT: {{ $}}3701 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23702 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33703 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43704 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53705 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63706 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73707 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83708 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93709 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3710 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103711 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113712 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123713 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133714 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3715 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03716 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13717 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3718 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23719 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3720 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33721 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3722 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43723 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3724 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53725 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3726 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63727 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3728 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)3729 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3730 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3731 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3732 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3733 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3734 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3735 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3736 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3737 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3738 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33739main_body:3740 %v = call <4 x float> @llvm.amdgcn.image.sample.c.d.2d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3741 ret <4 x float> %v3742}3743 3744define amdgpu_ps <4 x float> @sample_d_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s, half %clamp) {3745 ; GFX9-LABEL: name: sample_d_cl_1d3746 ; GFX9: bb.1.main_body:3747 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33748 ; GFX9-NEXT: {{ $}}3749 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23750 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33751 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43752 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53753 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63754 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73755 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83756 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93757 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3758 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103759 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113760 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123761 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133762 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3763 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03764 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3765 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13766 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3767 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23768 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3769 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33770 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3771 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3772 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3773 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3774 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3775 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)3776 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3777 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3778 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3779 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3780 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3781 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3782 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33783 ;3784 ; GFX10-LABEL: name: sample_d_cl_1d3785 ; GFX10: bb.1.main_body:3786 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33787 ; GFX10-NEXT: {{ $}}3788 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23789 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33790 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43791 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53792 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63793 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73794 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83795 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93796 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3797 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103798 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113799 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123800 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133801 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3802 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03803 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3804 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13805 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3806 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23807 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3808 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33809 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3810 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3811 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3812 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3813 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3814 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3815 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3816 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3817 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3818 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3819 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3820 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33821 ;3822 ; GFX11-LABEL: name: sample_d_cl_1d3823 ; GFX11: bb.1.main_body:3824 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33825 ; GFX11-NEXT: {{ $}}3826 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23827 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33828 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43829 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53830 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63831 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73832 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83833 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93834 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3835 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103836 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113837 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123838 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133839 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3840 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03841 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3842 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13843 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3844 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23845 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3846 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33847 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3848 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3849 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3850 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3851 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3852 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3853 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3854 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)3855 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)3856 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)3857 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)3858 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33859 ;3860 ; GFX12-LABEL: name: sample_d_cl_1d3861 ; GFX12: bb.1.main_body:3862 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr33863 ; GFX12-NEXT: {{ $}}3864 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23865 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33866 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43867 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53868 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63869 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73870 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83871 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93872 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3873 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103874 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113875 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123876 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133877 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3878 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03879 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3880 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13881 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3882 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23883 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3884 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33885 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3886 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3887 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)3888 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)3889 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3890 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3891 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3892 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)3893 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)3894 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)3895 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)3896 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33897main_body:3898 %v = call <4 x float> @llvm.amdgcn.image.sample.d.cl.1d.v4f32.f16.f16(i32 15, half %dsdh, half %dsdv, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)3899 ret <4 x float> %v3900}3901 3902define amdgpu_ps <4 x float> @sample_d_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp) {3903 ; GFX9-LABEL: name: sample_d_cl_2d3904 ; GFX9: bb.1.main_body:3905 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63906 ; GFX9-NEXT: {{ $}}3907 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23908 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33909 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43910 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53911 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63912 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73913 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83914 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93915 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3916 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103917 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113918 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123919 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133920 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3921 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03922 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3923 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13924 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3925 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23926 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3927 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33928 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3929 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43930 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3931 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53932 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3933 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63934 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3935 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3936 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3937 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3938 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3939 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)3940 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)3941 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.2d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3942 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3943 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)3944 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)3945 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)3946 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)3947 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33948 ;3949 ; GFX10-LABEL: name: sample_d_cl_2d3950 ; GFX10: bb.1.main_body:3951 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63952 ; GFX10-NEXT: {{ $}}3953 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23954 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr33955 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr43956 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr53957 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr63958 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr73959 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr83960 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr93961 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)3962 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr103963 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr113964 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr123965 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr133966 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)3967 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr03968 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)3969 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13970 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)3971 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr23972 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)3973 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr33974 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)3975 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr43976 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)3977 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr53978 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)3979 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr63980 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)3981 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)3982 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)3983 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)3984 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF3985 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)3986 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)3987 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)3988 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)3989 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)3990 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)3991 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)3992 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr33993 ;3994 ; GFX11-LABEL: name: sample_d_cl_2d3995 ; GFX11: bb.1.main_body:3996 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr63997 ; GFX11-NEXT: {{ $}}3998 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr23999 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34000 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44001 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54002 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64003 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74004 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84005 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94006 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4007 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104008 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114009 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124010 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134011 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4012 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04013 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4014 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14015 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4016 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24017 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4018 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34019 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4020 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44021 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4022 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54023 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4024 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64025 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4026 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4027 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4028 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4029 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4030 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4031 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4032 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4033 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4034 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4035 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4036 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4037 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34038 ;4039 ; GFX12-LABEL: name: sample_d_cl_2d4040 ; GFX12: bb.1.main_body:4041 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr64042 ; GFX12-NEXT: {{ $}}4043 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24044 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34045 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44046 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54047 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64048 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74049 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84050 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94051 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4052 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104053 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114054 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124055 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134056 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4057 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04058 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4059 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14060 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4061 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24062 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4063 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34064 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4065 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44066 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4067 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54068 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4069 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64070 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4071 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4072 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4073 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4074 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4075 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4076 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4077 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4078 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4079 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4080 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4081 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4082 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34083main_body:4084 %v = call <4 x float> @llvm.amdgcn.image.sample.d.cl.2d.v4f32.f16.f16(i32 15, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4085 ret <4 x float> %v4086}4087 4088define amdgpu_ps <4 x float> @sample_c_d_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dsdv, half %s, half %clamp) {4089 ; GFX9-LABEL: name: sample_c_d_cl_1d4090 ; GFX9: bb.1.main_body:4091 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr44092 ; GFX9-NEXT: {{ $}}4093 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24094 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34095 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44096 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54097 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64098 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74099 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84100 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94101 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4102 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104103 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114104 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124105 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134106 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4107 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04108 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14109 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4110 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24111 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4112 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34113 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4114 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44115 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4116 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4117 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4118 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4119 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4120 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4121 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)4122 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.1d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4123 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4124 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4125 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4126 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4127 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4128 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34129 ;4130 ; GFX10-LABEL: name: sample_c_d_cl_1d4131 ; GFX10: bb.1.main_body:4132 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr44133 ; GFX10-NEXT: {{ $}}4134 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24135 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34136 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44137 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54138 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64139 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74140 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84141 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94142 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4143 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104144 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114145 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124146 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134147 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4148 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04149 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14150 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4151 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24152 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4153 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34154 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4155 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44156 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4157 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4158 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4159 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4160 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4161 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4162 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4163 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4164 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)4165 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)4166 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)4167 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)4168 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34169 ;4170 ; GFX11-LABEL: name: sample_c_d_cl_1d4171 ; GFX11: bb.1.main_body:4172 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr44173 ; GFX11-NEXT: {{ $}}4174 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24175 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34176 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44177 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54178 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64179 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74180 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84181 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94182 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4183 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104184 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114185 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124186 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134187 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4188 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04189 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14190 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4191 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24192 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4193 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34194 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4195 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44196 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4197 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4198 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4199 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4200 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4201 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4202 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4203 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4204 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4205 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4206 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4207 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4208 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34209 ;4210 ; GFX12-LABEL: name: sample_c_d_cl_1d4211 ; GFX12: bb.1.main_body:4212 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr44213 ; GFX12-NEXT: {{ $}}4214 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24215 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34216 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44217 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54218 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64219 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74220 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84221 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94222 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4223 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104224 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114225 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124226 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134227 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4228 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04229 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14230 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4231 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24232 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4233 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34234 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4235 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44236 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4237 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4238 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4239 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4240 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4241 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4242 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4243 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4244 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4245 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4246 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4247 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4248 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34249main_body:4250 %v = call <4 x float> @llvm.amdgcn.image.sample.c.d.cl.1d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dsdv, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4251 ret <4 x float> %v4252}4253 4254define amdgpu_ps <4 x float> @sample_c_d_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp) {4255 ; GFX9-LABEL: name: sample_c_d_cl_2d4256 ; GFX9: bb.1.main_body:4257 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr74258 ; GFX9-NEXT: {{ $}}4259 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24260 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34261 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44262 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54263 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64264 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74265 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84266 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94267 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4268 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104269 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114270 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124271 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134272 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4273 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04274 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14275 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4276 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24277 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4278 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34279 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4280 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44281 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4282 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54283 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4284 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64285 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4286 ; GFX9-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr74287 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)4288 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4289 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4290 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4291 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4292 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4293 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4294 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<10 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)4295 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.2d), 15, [[CONCAT_VECTORS]](<10 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4296 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4297 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4298 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4299 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4300 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4301 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34302 ;4303 ; GFX10-LABEL: name: sample_c_d_cl_2d4304 ; GFX10: bb.1.main_body:4305 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr74306 ; GFX10-NEXT: {{ $}}4307 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24308 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34309 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44310 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54311 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64312 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74313 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84314 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94315 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4316 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104317 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114318 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124319 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134320 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4321 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04322 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14323 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4324 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24325 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4326 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34327 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4328 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44329 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4330 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54331 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4332 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64333 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4334 ; GFX10-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr74335 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)4336 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4337 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4338 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4339 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4340 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4341 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4342 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4343 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4344 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)4345 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)4346 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)4347 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)4348 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34349 ;4350 ; GFX11-LABEL: name: sample_c_d_cl_2d4351 ; GFX11: bb.1.main_body:4352 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr74353 ; GFX11-NEXT: {{ $}}4354 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24355 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34356 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44357 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54358 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64359 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74360 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84361 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94362 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4363 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104364 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114365 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124366 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134367 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4368 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04369 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14370 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4371 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24372 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4373 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34374 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4375 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44376 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4377 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54378 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4379 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64380 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4381 ; GFX11-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr74382 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)4383 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4384 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4385 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4386 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4387 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4388 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4389 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4390 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4391 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4392 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4393 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4394 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4395 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34396 ;4397 ; GFX12-LABEL: name: sample_c_d_cl_2d4398 ; GFX12: bb.1.main_body:4399 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr74400 ; GFX12-NEXT: {{ $}}4401 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24402 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34403 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44404 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54405 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64406 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74407 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84408 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94409 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4410 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104411 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114412 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124413 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134414 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4415 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04416 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14417 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4418 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24419 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4420 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34421 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4422 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44423 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4424 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54425 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4426 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64427 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4428 ; GFX12-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr74429 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)4430 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4431 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4432 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4433 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4434 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4435 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)4436 ; GFX12-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)4437 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4438 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4439 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4440 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4441 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4442 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4443 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34444main_body:4445 %v = call <4 x float> @llvm.amdgcn.image.sample.c.d.cl.2d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4446 ret <4 x float> %v4447}4448 4449define amdgpu_ps <4 x float> @sample_cd_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s) {4450 ; GFX9-LABEL: name: sample_cd_1d4451 ; GFX9: bb.1.main_body:4452 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr24453 ; GFX9-NEXT: {{ $}}4454 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24455 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34456 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44457 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54458 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64459 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74460 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84461 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94462 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4463 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104464 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114465 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124466 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134467 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4468 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04469 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4470 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14471 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4472 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24473 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4474 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4475 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4476 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4477 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4478 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)4479 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4480 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4481 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4482 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4483 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4484 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4485 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34486 ;4487 ; GFX10-LABEL: name: sample_cd_1d4488 ; GFX10: bb.1.main_body:4489 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr24490 ; GFX10-NEXT: {{ $}}4491 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24492 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34493 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44494 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54495 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64496 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74497 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84498 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94499 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4500 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104501 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114502 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124503 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134504 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4505 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04506 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4507 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14508 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4509 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24510 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4511 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4512 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4513 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4514 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4515 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4516 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4517 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)4518 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)4519 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)4520 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)4521 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34522 ;4523 ; GFX11-LABEL: name: sample_cd_1d4524 ; GFX11: bb.1.main_body:4525 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr24526 ; GFX11-NEXT: {{ $}}4527 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24528 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34529 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44530 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54531 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64532 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74533 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84534 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94535 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4536 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104537 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114538 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124539 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134540 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4541 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04542 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4543 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14544 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4545 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24546 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4547 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4548 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4549 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4550 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4551 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4552 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4553 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4554 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4555 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4556 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4557 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34558 ;4559 ; GFX12-LABEL: name: sample_cd_1d4560 ; GFX12: bb.1.main_body:4561 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr24562 ; GFX12-NEXT: {{ $}}4563 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24564 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34565 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44566 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54567 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64568 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74569 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84570 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94571 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4572 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104573 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114574 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124575 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134576 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4577 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04578 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4579 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14580 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4581 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24582 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4583 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4584 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4585 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4586 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4587 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4588 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4589 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4590 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4591 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4592 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4593 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34594main_body:4595 %v = call <4 x float> @llvm.amdgcn.image.sample.cd.1d.v4f32.f16.f16(i32 15, half %dsdh, half %dsdv, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4596 ret <4 x float> %v4597}4598 4599define amdgpu_ps <4 x float> @sample_cd_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t) {4600 ; GFX9-LABEL: name: sample_cd_2d4601 ; GFX9: bb.1.main_body:4602 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr54603 ; GFX9-NEXT: {{ $}}4604 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24605 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34606 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44607 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54608 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64609 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74610 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84611 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94612 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4613 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104614 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114615 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124616 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134617 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4618 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04619 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4620 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14621 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4622 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24623 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4624 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34625 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4626 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44627 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4628 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54629 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4630 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4631 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4632 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4633 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)4634 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4635 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4636 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4637 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4638 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4639 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4640 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34641 ;4642 ; GFX10-LABEL: name: sample_cd_2d4643 ; GFX10: bb.1.main_body:4644 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr54645 ; GFX10-NEXT: {{ $}}4646 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24647 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34648 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44649 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54650 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64651 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74652 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84653 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94654 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4655 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104656 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114657 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124658 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134659 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4660 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04661 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4662 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14663 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4664 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24665 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4666 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34667 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4668 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44669 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4670 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54671 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4672 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4673 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4674 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4675 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4676 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4677 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)4678 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)4679 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)4680 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)4681 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34682 ;4683 ; GFX11-LABEL: name: sample_cd_2d4684 ; GFX11: bb.1.main_body:4685 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr54686 ; GFX11-NEXT: {{ $}}4687 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24688 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34689 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44690 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54691 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64692 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74693 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84694 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94695 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4696 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104697 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114698 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124699 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134700 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4701 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04702 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4703 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14704 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4705 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24706 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4707 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34708 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4709 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44710 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4711 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54712 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4713 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4714 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4715 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4716 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4717 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4718 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4719 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4720 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4721 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4722 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34723 ;4724 ; GFX12-LABEL: name: sample_cd_2d4725 ; GFX12: bb.1.main_body:4726 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr54727 ; GFX12-NEXT: {{ $}}4728 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24729 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34730 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44731 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54732 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64733 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74734 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84735 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94736 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4737 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104738 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114739 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124740 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134741 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4742 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04743 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)4744 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14745 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4746 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24747 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4748 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34749 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4750 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44751 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4752 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54753 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4754 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4755 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4756 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4757 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4758 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4759 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4760 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4761 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4762 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4763 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34764main_body:4765 %v = call <4 x float> @llvm.amdgcn.image.sample.cd.2d.v4f32.f16.f16(i32 15, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4766 ret <4 x float> %v4767}4768 4769define amdgpu_ps <4 x float> @sample_c_cd_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dsdv, half %s) {4770 ; GFX9-LABEL: name: sample_c_cd_1d4771 ; GFX9: bb.1.main_body:4772 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr34773 ; GFX9-NEXT: {{ $}}4774 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24775 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34776 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44777 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54778 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64779 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74780 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84781 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94782 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4783 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104784 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114785 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124786 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134787 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4788 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04789 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14790 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4791 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24792 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4793 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34794 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4795 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4796 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4797 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4798 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4799 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4800 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)4801 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.1d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4802 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4803 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4804 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4805 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4806 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4807 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34808 ;4809 ; GFX10-LABEL: name: sample_c_cd_1d4810 ; GFX10: bb.1.main_body:4811 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr34812 ; GFX10-NEXT: {{ $}}4813 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24814 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34815 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44816 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54817 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64818 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74819 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84820 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94821 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4822 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104823 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114824 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124825 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134826 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4827 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04828 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14829 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4830 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24831 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4832 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34833 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4834 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4835 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4836 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4837 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4838 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4839 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4840 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4841 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)4842 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)4843 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)4844 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)4845 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34846 ;4847 ; GFX11-LABEL: name: sample_c_cd_1d4848 ; GFX11: bb.1.main_body:4849 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr34850 ; GFX11-NEXT: {{ $}}4851 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24852 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34853 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44854 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54855 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64856 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74857 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84858 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94859 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4860 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104861 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114862 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124863 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134864 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4865 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04866 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14867 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4868 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24869 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4870 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34871 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4872 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4873 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4874 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4875 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4876 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4877 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4878 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4879 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)4880 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)4881 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)4882 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)4883 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34884 ;4885 ; GFX12-LABEL: name: sample_c_cd_1d4886 ; GFX12: bb.1.main_body:4887 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr34888 ; GFX12-NEXT: {{ $}}4889 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24890 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34891 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44892 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54893 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64894 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74895 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84896 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94897 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4898 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104899 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114900 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124901 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134902 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4903 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04904 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14905 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4906 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24907 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4908 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34909 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4910 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4911 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF4912 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)4913 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)4914 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)4915 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4916 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4917 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)4918 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)4919 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)4920 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)4921 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34922main_body:4923 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cd.1d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dsdv, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)4924 ret <4 x float> %v4925}4926 4927define amdgpu_ps <4 x float> @sample_c_cd_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t) {4928 ; GFX9-LABEL: name: sample_c_cd_2d4929 ; GFX9: bb.1.main_body:4930 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr64931 ; GFX9-NEXT: {{ $}}4932 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24933 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34934 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44935 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54936 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64937 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74938 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84939 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94940 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4941 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104942 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114943 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124944 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134945 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4946 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04947 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14948 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4949 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24950 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4951 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34952 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4953 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44954 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4955 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr54956 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)4957 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr64958 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)4959 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)4960 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)4961 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)4962 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)4963 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)4964 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.2d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)4965 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)4966 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)4967 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)4968 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)4969 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)4970 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr34971 ;4972 ; GFX10-LABEL: name: sample_c_cd_2d4973 ; GFX10: bb.1.main_body:4974 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr64975 ; GFX10-NEXT: {{ $}}4976 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr24977 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr34978 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr44979 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr54980 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr64981 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr74982 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr84983 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr94984 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)4985 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr104986 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr114987 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr124988 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr134989 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)4990 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr04991 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr14992 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)4993 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr24994 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)4995 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr34996 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)4997 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr44998 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)4999 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55000 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5001 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65002 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5003 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5004 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5005 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5006 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5007 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5008 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5009 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5010 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5011 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5012 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5013 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35014 ;5015 ; GFX11-LABEL: name: sample_c_cd_2d5016 ; GFX11: bb.1.main_body:5017 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65018 ; GFX11-NEXT: {{ $}}5019 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25020 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35021 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45022 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55023 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65024 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75025 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85026 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95027 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5028 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105029 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115030 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125031 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135032 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5033 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05034 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15035 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5036 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25037 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5038 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35039 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5040 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45041 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5042 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55043 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5044 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65045 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5046 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5047 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5048 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5049 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5050 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5051 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5052 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5053 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5054 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5055 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5056 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35057 ;5058 ; GFX12-LABEL: name: sample_c_cd_2d5059 ; GFX12: bb.1.main_body:5060 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65061 ; GFX12-NEXT: {{ $}}5062 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25063 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35064 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45065 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55066 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65067 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75068 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85069 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95070 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5071 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105072 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115073 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125074 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135075 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5076 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05077 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15078 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5079 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25080 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5081 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35082 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5083 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45084 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5085 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55086 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5087 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65088 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5089 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5090 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5091 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5092 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5093 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5094 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5095 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5096 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5097 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5098 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5099 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35100main_body:5101 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cd.2d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5102 ret <4 x float> %v5103}5104 5105define amdgpu_ps <4 x float> @sample_cd_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s, half %clamp) {5106 ; GFX9-LABEL: name: sample_cd_cl_1d5107 ; GFX9: bb.1.main_body:5108 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr35109 ; GFX9-NEXT: {{ $}}5110 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25111 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35112 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45113 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55114 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65115 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75116 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85117 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95118 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5119 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105120 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115121 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125122 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135123 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5124 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05125 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5126 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15127 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5128 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25129 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5130 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35131 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5132 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5133 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5134 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5135 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5136 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)5137 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.1d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5138 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5139 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5140 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5141 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5142 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5143 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35144 ;5145 ; GFX10-LABEL: name: sample_cd_cl_1d5146 ; GFX10: bb.1.main_body:5147 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr35148 ; GFX10-NEXT: {{ $}}5149 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25150 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35151 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45152 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55153 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65154 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75155 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85156 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95157 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5158 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105159 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115160 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125161 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135162 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5163 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05164 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5165 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15166 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5167 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25168 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5169 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35170 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5171 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5172 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5173 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5174 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5175 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5176 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5177 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5178 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5179 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5180 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5181 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35182 ;5183 ; GFX11-LABEL: name: sample_cd_cl_1d5184 ; GFX11: bb.1.main_body:5185 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr35186 ; GFX11-NEXT: {{ $}}5187 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25188 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35189 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45190 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55191 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65192 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75193 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85194 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95195 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5196 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105197 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115198 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125199 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135200 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5201 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05202 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5203 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15204 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5205 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25206 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5207 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35208 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5209 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5210 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5211 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5212 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5213 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5214 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5215 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5216 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5217 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5218 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5219 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35220 ;5221 ; GFX12-LABEL: name: sample_cd_cl_1d5222 ; GFX12: bb.1.main_body:5223 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr35224 ; GFX12-NEXT: {{ $}}5225 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25226 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35227 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45228 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55229 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65230 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75231 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85232 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95233 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5234 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105235 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115236 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125237 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135238 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5239 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05240 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5241 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15242 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5243 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25244 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5245 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35246 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5247 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5248 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5249 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5250 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5251 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5252 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5253 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5254 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5255 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5256 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5257 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35258main_body:5259 %v = call <4 x float> @llvm.amdgcn.image.sample.cd.cl.1d.v4f32.f16.f16(i32 15, half %dsdh, half %dsdv, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5260 ret <4 x float> %v5261}5262 5263define amdgpu_ps <4 x float> @sample_cd_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp) {5264 ; GFX9-LABEL: name: sample_cd_cl_2d5265 ; GFX9: bb.1.main_body:5266 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65267 ; GFX9-NEXT: {{ $}}5268 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25269 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35270 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45271 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55272 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65273 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75274 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85275 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95276 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5277 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105278 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115279 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125280 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135281 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5282 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05283 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5284 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15285 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5286 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25287 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5288 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35289 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5290 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45291 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5292 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55293 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5294 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65295 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5296 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5297 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5298 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5299 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5300 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5301 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)5302 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.2d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5303 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5304 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5305 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5306 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5307 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5308 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35309 ;5310 ; GFX10-LABEL: name: sample_cd_cl_2d5311 ; GFX10: bb.1.main_body:5312 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65313 ; GFX10-NEXT: {{ $}}5314 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25315 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35316 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45317 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55318 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65319 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75320 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85321 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95322 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5323 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105324 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115325 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125326 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135327 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5328 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05329 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5330 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15331 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5332 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25333 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5334 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35335 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5336 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45337 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5338 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55339 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5340 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65341 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5342 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5343 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5344 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5345 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5346 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5347 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5348 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5349 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5350 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5351 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5352 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5353 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35354 ;5355 ; GFX11-LABEL: name: sample_cd_cl_2d5356 ; GFX11: bb.1.main_body:5357 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65358 ; GFX11-NEXT: {{ $}}5359 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25360 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35361 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45362 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55363 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65364 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75365 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85366 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95367 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5368 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105369 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115370 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125371 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135372 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5373 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05374 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5375 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15376 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5377 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25378 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5379 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35380 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5381 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45382 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5383 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55384 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5385 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65386 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5387 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5388 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5389 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5390 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5391 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5392 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5393 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5394 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5395 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5396 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5397 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5398 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35399 ;5400 ; GFX12-LABEL: name: sample_cd_cl_2d5401 ; GFX12: bb.1.main_body:5402 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr65403 ; GFX12-NEXT: {{ $}}5404 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25405 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35406 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45407 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55408 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65409 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75410 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85411 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95412 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5413 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105414 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115415 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125416 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135417 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5418 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05419 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5420 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15421 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5422 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25423 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5424 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35425 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5426 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45427 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5428 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55429 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5430 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65431 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5432 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5433 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5434 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5435 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5436 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5437 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5438 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5439 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5440 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5441 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5442 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5443 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35444main_body:5445 %v = call <4 x float> @llvm.amdgcn.image.sample.cd.cl.2d.v4f32.f16.f16(i32 15, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5446 ret <4 x float> %v5447}5448 5449define amdgpu_ps <4 x float> @sample_c_cd_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dsdv, half %s, half %clamp) {5450 ; GFX9-LABEL: name: sample_c_cd_cl_1d5451 ; GFX9: bb.1.main_body:5452 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr45453 ; GFX9-NEXT: {{ $}}5454 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25455 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35456 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45457 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55458 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65459 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75460 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85461 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95462 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5463 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105464 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115465 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125466 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135467 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5468 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05469 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15470 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5471 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25472 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5473 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35474 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5475 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45476 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5477 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5478 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5479 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5480 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5481 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5482 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>)5483 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.1d), 15, [[CONCAT_VECTORS]](<8 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5484 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5485 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5486 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5487 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5488 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5489 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35490 ;5491 ; GFX10-LABEL: name: sample_c_cd_cl_1d5492 ; GFX10: bb.1.main_body:5493 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr45494 ; GFX10-NEXT: {{ $}}5495 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25496 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35497 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45498 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55499 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65500 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75501 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85502 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95503 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5504 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105505 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115506 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125507 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135508 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5509 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05510 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15511 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5512 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25513 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5514 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35515 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5516 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45517 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5518 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5519 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5520 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5521 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5522 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5523 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5524 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5525 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5526 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5527 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5528 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5529 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35530 ;5531 ; GFX11-LABEL: name: sample_c_cd_cl_1d5532 ; GFX11: bb.1.main_body:5533 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr45534 ; GFX11-NEXT: {{ $}}5535 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25536 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35537 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45538 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55539 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65540 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75541 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85542 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95543 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5544 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105545 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115546 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125547 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135548 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5549 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05550 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15551 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5552 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25553 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5554 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35555 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5556 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45557 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5558 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5559 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5560 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5561 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5562 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5563 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5564 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5565 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5566 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5567 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5568 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5569 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35570 ;5571 ; GFX12-LABEL: name: sample_c_cd_cl_1d5572 ; GFX12: bb.1.main_body:5573 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr45574 ; GFX12-NEXT: {{ $}}5575 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25576 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35577 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45578 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55579 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65580 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75581 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85582 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95583 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5584 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105585 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115586 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125587 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135588 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5589 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05590 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15591 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5592 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25593 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5594 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35595 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5596 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45597 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5598 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5599 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5600 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)5601 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC1]](s16), [[DEF]](s16)5602 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5603 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5604 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5605 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5606 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5607 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5608 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5609 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35610main_body:5611 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cd.cl.1d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dsdv, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5612 ret <4 x float> %v5613}5614 5615define amdgpu_ps <4 x float> @sample_c_cd_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp) {5616 ; GFX9-LABEL: name: sample_c_cd_cl_2d5617 ; GFX9: bb.1.main_body:5618 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr75619 ; GFX9-NEXT: {{ $}}5620 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25621 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35622 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45623 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55624 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65625 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75626 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85627 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95628 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5629 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105630 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115631 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125632 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135633 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5634 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05635 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15636 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5637 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25638 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5639 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35640 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5641 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45642 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5643 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55644 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5645 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65646 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5647 ; GFX9-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr75648 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)5649 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5650 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5651 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5652 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5653 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5654 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5655 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<10 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)5656 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.2d), 15, [[CONCAT_VECTORS]](<10 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5657 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5658 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5659 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5660 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5661 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5662 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35663 ;5664 ; GFX10-LABEL: name: sample_c_cd_cl_2d5665 ; GFX10: bb.1.main_body:5666 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr75667 ; GFX10-NEXT: {{ $}}5668 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25669 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35670 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45671 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55672 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65673 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75674 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85675 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95676 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5677 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105678 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115679 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125680 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135681 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5682 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05683 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15684 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5685 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25686 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5687 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35688 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5689 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45690 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5691 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55692 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5693 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65694 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5695 ; GFX10-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr75696 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)5697 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5698 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5699 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5700 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5701 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5702 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5703 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5704 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5705 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5706 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5707 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5708 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5709 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35710 ;5711 ; GFX11-LABEL: name: sample_c_cd_cl_2d5712 ; GFX11: bb.1.main_body:5713 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr75714 ; GFX11-NEXT: {{ $}}5715 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25716 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35717 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45718 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55719 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65720 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75721 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85722 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95723 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5724 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105725 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115726 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125727 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135728 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5729 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05730 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15731 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5732 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25733 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5734 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35735 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5736 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45737 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5738 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55739 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5740 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65741 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5742 ; GFX11-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr75743 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)5744 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5745 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5746 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5747 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5748 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5749 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5750 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5751 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5752 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5753 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5754 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5755 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5756 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35757 ;5758 ; GFX12-LABEL: name: sample_c_cd_cl_2d5759 ; GFX12: bb.1.main_body:5760 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr75761 ; GFX12-NEXT: {{ $}}5762 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25763 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35764 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45765 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55766 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65767 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75768 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85769 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95770 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5771 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105772 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115773 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125774 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135775 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5776 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05777 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15778 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5779 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25780 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5781 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr35782 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)5783 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr45784 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)5785 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr55786 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)5787 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr65788 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)5789 ; GFX12-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr75790 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)5791 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)5792 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5793 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)5794 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)5795 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5796 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)5797 ; GFX12-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)5798 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.cd.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5799 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5800 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5801 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5802 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5803 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5804 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35805main_body:5806 %v = call <4 x float> @llvm.amdgcn.image.sample.c.cd.cl.2d.v4f32.f32.f16(i32 15, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5807 ret <4 x float> %v5808}5809 5810define amdgpu_ps <4 x float> @sample_l_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %lod) {5811 ; GFX9-LABEL: name: sample_l_1d5812 ; GFX9: bb.1.main_body:5813 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr15814 ; GFX9-NEXT: {{ $}}5815 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25816 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35817 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45818 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55819 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65820 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75821 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85822 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95823 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5824 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105825 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115826 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125827 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135828 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5829 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05830 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5831 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15832 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5833 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5834 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5835 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5836 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5837 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5838 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5839 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5840 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35841 ;5842 ; GFX10-LABEL: name: sample_l_1d5843 ; GFX10: bb.1.main_body:5844 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr15845 ; GFX10-NEXT: {{ $}}5846 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25847 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35848 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45849 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55850 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65851 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75852 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85853 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95854 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5855 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105856 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115857 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125858 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135859 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5860 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05861 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5862 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15863 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5864 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5865 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)5866 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5867 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)5868 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)5869 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)5870 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)5871 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35872 ;5873 ; GFX11-LABEL: name: sample_l_1d5874 ; GFX11: bb.1.main_body:5875 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr15876 ; GFX11-NEXT: {{ $}}5877 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25878 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35879 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45880 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55881 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65882 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75883 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85884 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95885 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5886 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105887 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115888 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125889 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135890 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5891 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05892 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5893 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15894 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5895 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5896 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)5897 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5898 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)5899 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)5900 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)5901 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)5902 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35903 ;5904 ; GFX12-LABEL: name: sample_l_1d5905 ; GFX12: bb.1.main_body:5906 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr15907 ; GFX12-NEXT: {{ $}}5908 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25909 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35910 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45911 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55912 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65913 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75914 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85915 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95916 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5917 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105918 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115919 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125920 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135921 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5922 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05923 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5924 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15925 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5926 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5927 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)5928 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5929 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)5930 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)5931 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)5932 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)5933 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35934main_body:5935 %v = call <4 x float> @llvm.amdgcn.image.sample.l.1d.v4f32.f16(i32 15, half %s, half %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)5936 ret <4 x float> %v5937}5938 5939define amdgpu_ps <4 x float> @sample_l_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %lod) {5940 ; GFX9-LABEL: name: sample_l_2d5941 ; GFX9: bb.1.main_body:5942 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr25943 ; GFX9-NEXT: {{ $}}5944 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25945 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35946 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45947 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55948 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65949 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75950 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85951 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95952 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5953 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105954 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115955 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125956 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135957 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5958 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05959 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5960 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15961 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5962 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25963 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)5964 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)5965 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF5966 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)5967 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)5968 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.2d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)5969 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)5970 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)5971 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)5972 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)5973 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)5974 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr35975 ;5976 ; GFX10-LABEL: name: sample_l_2d5977 ; GFX10: bb.1.main_body:5978 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr25979 ; GFX10-NEXT: {{ $}}5980 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr25981 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr35982 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr45983 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr55984 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr65985 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr75986 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr85987 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr95988 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)5989 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr105990 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr115991 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr125992 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr135993 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)5994 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr05995 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)5996 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr15997 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)5998 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr25999 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6000 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6001 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6002 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6003 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6004 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6005 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6006 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6007 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6008 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6009 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36010 ;6011 ; GFX11-LABEL: name: sample_l_2d6012 ; GFX11: bb.1.main_body:6013 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26014 ; GFX11-NEXT: {{ $}}6015 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26016 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36017 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46018 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56019 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66020 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76021 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86022 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96023 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6024 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106025 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116026 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126027 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136028 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6029 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06030 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6031 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16032 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6033 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26034 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6035 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6036 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6037 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6038 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6039 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6040 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6041 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6042 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6043 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6044 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36045 ;6046 ; GFX12-LABEL: name: sample_l_2d6047 ; GFX12: bb.1.main_body:6048 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26049 ; GFX12-NEXT: {{ $}}6050 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26051 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36052 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46053 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56054 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66055 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76056 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86057 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96058 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6059 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106060 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116061 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126062 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136063 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6064 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06065 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6066 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16067 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6068 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26069 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6070 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6071 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6072 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6073 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6074 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6075 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6076 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6077 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6078 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6079 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36080main_body:6081 %v = call <4 x float> @llvm.amdgcn.image.sample.l.2d.v4f32.f16(i32 15, half %s, half %t, half %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6082 ret <4 x float> %v6083}6084 6085define amdgpu_ps <4 x float> @sample_c_l_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %lod) {6086 ; GFX9-LABEL: name: sample_c_l_1d6087 ; GFX9: bb.1.main_body:6088 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26089 ; GFX9-NEXT: {{ $}}6090 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26091 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36092 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46093 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56094 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66095 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76096 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86097 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96098 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6099 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106100 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116101 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126102 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136103 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6104 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06105 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16106 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6107 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26108 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6109 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6110 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6111 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)6112 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6113 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6114 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6115 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6116 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6117 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6118 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36119 ;6120 ; GFX10-LABEL: name: sample_c_l_1d6121 ; GFX10: bb.1.main_body:6122 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26123 ; GFX10-NEXT: {{ $}}6124 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26125 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36126 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46127 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56128 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66129 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76130 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86131 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96132 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6133 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106134 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116135 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126136 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136137 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6138 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06139 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16140 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6141 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26142 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6143 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6144 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6145 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6146 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6147 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6148 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6149 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6150 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6151 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36152 ;6153 ; GFX11-LABEL: name: sample_c_l_1d6154 ; GFX11: bb.1.main_body:6155 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26156 ; GFX11-NEXT: {{ $}}6157 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26158 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36159 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46160 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56161 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66162 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76163 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86164 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96165 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6166 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106167 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116168 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126169 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136170 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6171 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06172 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16173 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6174 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26175 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6176 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6177 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6178 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6179 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6180 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6181 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6182 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6183 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6184 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36185 ;6186 ; GFX12-LABEL: name: sample_c_l_1d6187 ; GFX12: bb.1.main_body:6188 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26189 ; GFX12-NEXT: {{ $}}6190 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26191 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36192 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46193 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56194 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66195 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76196 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86197 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96198 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6199 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106200 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116201 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126202 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136203 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6204 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06205 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16206 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6207 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26208 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6209 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6210 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6211 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6212 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6213 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6214 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6215 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6216 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6217 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36218main_body:6219 %v = call <4 x float> @llvm.amdgcn.image.sample.c.l.1d.v4f32.f16(i32 15, float %zcompare, half %s, half %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6220 ret <4 x float> %v6221}6222 6223define amdgpu_ps <4 x float> @sample_c_l_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %t, half %lod) {6224 ; GFX9-LABEL: name: sample_c_l_2d6225 ; GFX9: bb.1.main_body:6226 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr36227 ; GFX9-NEXT: {{ $}}6228 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26229 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36230 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46231 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56232 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66233 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76234 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86235 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96236 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6237 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106238 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116239 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126240 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136241 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6242 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06243 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16244 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6245 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26246 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6247 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36248 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6249 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6250 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6251 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6252 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6253 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>)6254 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.2d), 15, [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6255 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6256 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6257 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6258 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6259 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6260 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36261 ;6262 ; GFX10-LABEL: name: sample_c_l_2d6263 ; GFX10: bb.1.main_body:6264 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr36265 ; GFX10-NEXT: {{ $}}6266 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26267 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36268 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46269 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56270 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66271 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76272 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86273 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96274 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6275 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106276 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116277 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126278 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136279 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6280 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06281 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16282 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6283 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26284 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6285 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36286 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6287 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6288 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6289 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6290 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6291 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6292 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6293 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6294 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6295 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6296 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6297 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36298 ;6299 ; GFX11-LABEL: name: sample_c_l_2d6300 ; GFX11: bb.1.main_body:6301 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr36302 ; GFX11-NEXT: {{ $}}6303 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26304 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36305 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46306 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56307 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66308 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76309 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86310 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96311 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6312 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106313 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116314 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126315 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136316 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6317 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06318 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16319 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6320 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26321 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6322 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36323 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6324 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6325 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6326 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6327 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6328 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6329 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6330 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6331 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6332 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6333 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6334 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36335 ;6336 ; GFX12-LABEL: name: sample_c_l_2d6337 ; GFX12: bb.1.main_body:6338 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr36339 ; GFX12-NEXT: {{ $}}6340 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26341 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36342 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46343 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56344 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66345 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76346 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86347 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96348 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6349 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106350 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116351 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126352 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136353 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6354 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06355 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16356 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6357 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26358 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6359 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36360 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6361 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6362 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6363 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6364 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[DEF]](s16)6365 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.l.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6366 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6367 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6368 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6369 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6370 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6371 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36372main_body:6373 %v = call <4 x float> @llvm.amdgcn.image.sample.c.l.2d.v4f32.f16(i32 15, float %zcompare, half %s, half %t, half %lod, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6374 ret <4 x float> %v6375}6376 6377define amdgpu_ps <4 x float> @sample_lz_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s) {6378 ; GFX9-LABEL: name: sample_lz_1d6379 ; GFX9: bb.1.main_body:6380 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr06381 ; GFX9-NEXT: {{ $}}6382 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26383 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36384 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46385 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56386 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66387 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76388 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86389 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96390 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6391 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106392 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116393 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126394 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136395 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6396 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06397 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6398 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6399 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6400 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6401 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6402 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6403 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6404 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6405 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6406 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36407 ;6408 ; GFX10-LABEL: name: sample_lz_1d6409 ; GFX10: bb.1.main_body:6410 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr06411 ; GFX10-NEXT: {{ $}}6412 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26413 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36414 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46415 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56416 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66417 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76418 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86419 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96420 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6421 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106422 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116423 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126424 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136425 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6426 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06427 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6428 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6429 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6430 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6431 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6432 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6433 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6434 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6435 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6436 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36437 ;6438 ; GFX11-LABEL: name: sample_lz_1d6439 ; GFX11: bb.1.main_body:6440 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr06441 ; GFX11-NEXT: {{ $}}6442 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26443 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36444 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46445 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56446 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66447 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76448 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86449 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96450 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6451 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106452 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116453 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126454 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136455 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6456 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06457 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6458 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6459 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6460 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6461 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6462 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6463 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6464 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6465 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6466 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36467 ;6468 ; GFX12-LABEL: name: sample_lz_1d6469 ; GFX12: bb.1.main_body:6470 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr06471 ; GFX12-NEXT: {{ $}}6472 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26473 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36474 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46475 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56476 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66477 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76478 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86479 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96480 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6481 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106482 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116483 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126484 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136485 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6486 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06487 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6488 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6489 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6490 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6491 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6492 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6493 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6494 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6495 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6496 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36497main_body:6498 %v = call <4 x float> @llvm.amdgcn.image.sample.lz.1d.v4f32.f16(i32 15, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6499 ret <4 x float> %v6500}6501 6502define amdgpu_ps <4 x float> @sample_lz_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t) {6503 ; GFX9-LABEL: name: sample_lz_2d6504 ; GFX9: bb.1.main_body:6505 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16506 ; GFX9-NEXT: {{ $}}6507 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26508 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36509 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46510 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56511 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66512 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76513 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86514 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96515 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6516 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106517 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116518 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126519 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136520 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6521 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06522 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6523 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16524 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6525 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6526 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6527 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6528 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6529 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6530 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6531 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6532 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36533 ;6534 ; GFX10-LABEL: name: sample_lz_2d6535 ; GFX10: bb.1.main_body:6536 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16537 ; GFX10-NEXT: {{ $}}6538 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26539 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36540 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46541 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56542 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66543 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76544 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86545 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96546 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6547 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106548 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116549 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126550 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136551 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6552 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06553 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6554 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16555 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6556 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6557 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6558 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6559 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6560 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6561 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6562 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6563 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36564 ;6565 ; GFX11-LABEL: name: sample_lz_2d6566 ; GFX11: bb.1.main_body:6567 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16568 ; GFX11-NEXT: {{ $}}6569 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26570 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36571 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46572 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56573 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66574 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76575 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86576 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96577 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6578 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106579 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116580 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126581 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136582 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6583 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06584 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6585 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16586 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6587 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6588 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6589 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6590 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6591 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6592 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6593 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6594 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36595 ;6596 ; GFX12-LABEL: name: sample_lz_2d6597 ; GFX12: bb.1.main_body:6598 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16599 ; GFX12-NEXT: {{ $}}6600 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26601 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36602 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46603 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56604 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66605 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76606 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86607 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96608 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6609 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106610 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116611 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126612 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136613 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6614 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06615 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32)6616 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16617 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6618 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6619 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6620 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6621 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6622 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6623 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6624 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6625 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36626main_body:6627 %v = call <4 x float> @llvm.amdgcn.image.sample.lz.2d.v4f32.f16(i32 15, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6628 ret <4 x float> %v6629}6630 6631define amdgpu_ps <4 x float> @sample_c_lz_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s) {6632 ; GFX9-LABEL: name: sample_c_lz_1d6633 ; GFX9: bb.1.main_body:6634 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16635 ; GFX9-NEXT: {{ $}}6636 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26637 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36638 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46639 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56640 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66641 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76642 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86643 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96644 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6645 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106646 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116647 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126648 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136649 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6650 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06651 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16652 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6653 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6654 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6655 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6656 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)6657 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.1d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6658 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6659 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6660 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6661 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6662 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6663 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36664 ;6665 ; GFX10-LABEL: name: sample_c_lz_1d6666 ; GFX10: bb.1.main_body:6667 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16668 ; GFX10-NEXT: {{ $}}6669 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26670 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36671 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46672 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56673 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66674 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76675 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86676 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96677 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6678 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106679 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116680 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126681 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136682 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6683 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06684 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16685 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6686 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6687 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6688 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6689 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6690 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6691 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6692 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6693 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6694 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6695 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36696 ;6697 ; GFX11-LABEL: name: sample_c_lz_1d6698 ; GFX11: bb.1.main_body:6699 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16700 ; GFX11-NEXT: {{ $}}6701 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26702 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36703 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46704 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56705 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66706 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76707 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86708 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96709 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6710 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106711 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116712 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126713 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136714 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6715 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06716 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16717 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6718 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6719 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6720 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6721 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6722 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6723 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6724 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6725 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6726 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6727 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36728 ;6729 ; GFX12-LABEL: name: sample_c_lz_1d6730 ; GFX12: bb.1.main_body:6731 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr16732 ; GFX12-NEXT: {{ $}}6733 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26734 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36735 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46736 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56737 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66738 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76739 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86740 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96741 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6742 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106743 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116744 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126745 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136746 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6747 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06748 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16749 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6750 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6751 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6752 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[DEF]](s16)6753 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.1d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6754 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6755 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6756 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6757 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6758 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6759 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36760main_body:6761 %v = call <4 x float> @llvm.amdgcn.image.sample.c.lz.1d.v4f32.f16(i32 15, float %zcompare, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6762 ret <4 x float> %v6763}6764 6765define amdgpu_ps <4 x float> @sample_c_lz_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %t) {6766 ; GFX9-LABEL: name: sample_c_lz_2d6767 ; GFX9: bb.1.main_body:6768 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26769 ; GFX9-NEXT: {{ $}}6770 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26771 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36772 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46773 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56774 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66775 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76776 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86777 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96778 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6779 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106780 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116781 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126782 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136783 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6784 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06785 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16786 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6787 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26788 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6789 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6790 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6791 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>)6792 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.2d), 15, [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>), addrspace 8)6793 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6794 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)6795 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)6796 ; GFX9-NEXT: $vgpr2 = COPY [[UV2]](s32)6797 ; GFX9-NEXT: $vgpr3 = COPY [[UV3]](s32)6798 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36799 ;6800 ; GFX10-LABEL: name: sample_c_lz_2d6801 ; GFX10: bb.1.main_body:6802 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26803 ; GFX10-NEXT: {{ $}}6804 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26805 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36806 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46807 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56808 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66809 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76810 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86811 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96812 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6813 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106814 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116815 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126816 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136817 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6818 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06819 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16820 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6821 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26822 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6823 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6824 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6825 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6826 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6827 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)6828 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)6829 ; GFX10-NEXT: $vgpr2 = COPY [[UV2]](s32)6830 ; GFX10-NEXT: $vgpr3 = COPY [[UV3]](s32)6831 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36832 ;6833 ; GFX11-LABEL: name: sample_c_lz_2d6834 ; GFX11: bb.1.main_body:6835 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26836 ; GFX11-NEXT: {{ $}}6837 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26838 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36839 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46840 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56841 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66842 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76843 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86844 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96845 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6846 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106847 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116848 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126849 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136850 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6851 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06852 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16853 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6854 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26855 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6856 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6857 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6858 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6859 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6860 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)6861 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)6862 ; GFX11-NEXT: $vgpr2 = COPY [[UV2]](s32)6863 ; GFX11-NEXT: $vgpr3 = COPY [[UV3]](s32)6864 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36865 ;6866 ; GFX12-LABEL: name: sample_c_lz_2d6867 ; GFX12: bb.1.main_body:6868 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr26869 ; GFX12-NEXT: {{ $}}6870 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26871 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36872 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46873 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56874 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66875 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76876 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86877 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96878 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6879 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106880 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116881 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126882 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136883 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6884 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06885 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16886 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY13]](s32)6887 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26888 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6889 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6890 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6891 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.lz.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 1 :: (dereferenceable load (<4 x s32>), addrspace 8)6892 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<4 x s32>)6893 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)6894 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)6895 ; GFX12-NEXT: $vgpr2 = COPY [[UV2]](s32)6896 ; GFX12-NEXT: $vgpr3 = COPY [[UV3]](s32)6897 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr36898main_body:6899 %v = call <4 x float> @llvm.amdgcn.image.sample.c.lz.2d.v4f32.f16(i32 15, float %zcompare, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)6900 ret <4 x float> %v6901}6902 6903define amdgpu_ps float @sample_c_d_o_2darray_V1(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, i32 %offset, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %slice) {6904 ; GFX9-LABEL: name: sample_c_d_o_2darray_V16905 ; GFX9: bb.1.main_body:6906 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr86907 ; GFX9-NEXT: {{ $}}6908 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26909 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36910 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46911 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56912 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66913 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76914 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86915 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96916 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6917 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106918 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116919 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126920 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136921 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6922 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06923 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16924 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26925 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6926 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36927 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6928 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr46929 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)6930 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr56931 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)6932 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr66933 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)6934 ; GFX9-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr76935 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)6936 ; GFX9-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr86937 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)6938 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6939 ; GFX9-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)6940 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6941 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)6942 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)6943 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6944 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)6945 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)6946 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(s32) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 4, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (s32), addrspace 8)6947 ; GFX9-NEXT: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32)6948 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr06949 ;6950 ; GFX10-LABEL: name: sample_c_d_o_2darray_V16951 ; GFX10: bb.1.main_body:6952 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr86953 ; GFX10-NEXT: {{ $}}6954 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr26955 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr36956 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr46957 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr56958 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr66959 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr76960 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr86961 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr96962 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)6963 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr106964 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr116965 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr126966 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr136967 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)6968 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr06969 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr16970 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr26971 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)6972 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr36973 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)6974 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr46975 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)6976 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr56977 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)6978 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr66979 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)6980 ; GFX10-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr76981 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)6982 ; GFX10-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr86983 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)6984 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)6985 ; GFX10-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)6986 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)6987 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)6988 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)6989 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF6990 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)6991 ; GFX10-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)6992 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(s32) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 4, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (s32), addrspace 8)6993 ; GFX10-NEXT: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32)6994 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr06995 ;6996 ; GFX11-LABEL: name: sample_c_d_o_2darray_V16997 ; GFX11: bb.1.main_body:6998 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr86999 ; GFX11-NEXT: {{ $}}7000 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27001 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37002 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47003 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57004 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67005 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77006 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87007 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97008 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7009 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107010 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117011 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127012 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137013 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7014 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07015 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17016 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27017 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7018 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37019 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7020 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47021 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7022 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57023 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7024 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67025 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7026 ; GFX11-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77027 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7028 ; GFX11-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87029 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7030 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7031 ; GFX11-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7032 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7033 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7034 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7035 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7036 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7037 ; GFX11-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7038 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(s32) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 4, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (s32), addrspace 8)7039 ; GFX11-NEXT: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32)7040 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr07041 ;7042 ; GFX12-LABEL: name: sample_c_d_o_2darray_V17043 ; GFX12: bb.1.main_body:7044 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr87045 ; GFX12-NEXT: {{ $}}7046 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27047 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37048 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47049 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57050 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67051 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77052 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87053 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97054 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7055 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107056 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117057 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127058 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137059 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7060 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07061 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17062 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27063 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7064 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37065 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7066 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47067 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7068 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57069 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7070 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67071 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7072 ; GFX12-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77073 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7074 ; GFX12-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87075 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7076 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7077 ; GFX12-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7078 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7079 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7080 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7081 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7082 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7083 ; GFX12-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7084 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(s32) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 4, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (s32), addrspace 8)7085 ; GFX12-NEXT: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32)7086 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr07087main_body:7088 %v = call float @llvm.amdgcn.image.sample.c.d.o.2darray.f32.f16.f16(i32 4, i32 %offset, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %slice, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)7089 ret float %v7090}7091 7092define amdgpu_ps <2 x float> @sample_c_d_o_2darray_V2(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, i32 %offset, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %slice) {7093 ; GFX9-LABEL: name: sample_c_d_o_2darray_V27094 ; GFX9: bb.1.main_body:7095 ; GFX9-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr87096 ; GFX9-NEXT: {{ $}}7097 ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27098 ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37099 ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47100 ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57101 ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67102 ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77103 ; GFX9-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87104 ; GFX9-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97105 ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7106 ; GFX9-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107107 ; GFX9-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117108 ; GFX9-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127109 ; GFX9-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137110 ; GFX9-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7111 ; GFX9-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07112 ; GFX9-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17113 ; GFX9-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27114 ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7115 ; GFX9-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37116 ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7117 ; GFX9-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47118 ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7119 ; GFX9-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57120 ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7121 ; GFX9-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67122 ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7123 ; GFX9-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77124 ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7125 ; GFX9-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87126 ; GFX9-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7127 ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7128 ; GFX9-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7129 ; GFX9-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7130 ; GFX9-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7131 ; GFX9-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7132 ; GFX9-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7133 ; GFX9-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7134 ; GFX9-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7135 ; GFX9-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<2 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 6, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<2 x s32>), addrspace 8)7136 ; GFX9-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>)7137 ; GFX9-NEXT: $vgpr0 = COPY [[UV]](s32)7138 ; GFX9-NEXT: $vgpr1 = COPY [[UV1]](s32)7139 ; GFX9-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr17140 ;7141 ; GFX10-LABEL: name: sample_c_d_o_2darray_V27142 ; GFX10: bb.1.main_body:7143 ; GFX10-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr87144 ; GFX10-NEXT: {{ $}}7145 ; GFX10-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27146 ; GFX10-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37147 ; GFX10-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47148 ; GFX10-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57149 ; GFX10-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67150 ; GFX10-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77151 ; GFX10-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87152 ; GFX10-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97153 ; GFX10-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7154 ; GFX10-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107155 ; GFX10-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117156 ; GFX10-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127157 ; GFX10-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137158 ; GFX10-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7159 ; GFX10-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07160 ; GFX10-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17161 ; GFX10-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27162 ; GFX10-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7163 ; GFX10-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37164 ; GFX10-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7165 ; GFX10-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47166 ; GFX10-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7167 ; GFX10-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57168 ; GFX10-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7169 ; GFX10-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67170 ; GFX10-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7171 ; GFX10-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77172 ; GFX10-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7173 ; GFX10-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87174 ; GFX10-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7175 ; GFX10-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7176 ; GFX10-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7177 ; GFX10-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7178 ; GFX10-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7179 ; GFX10-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7180 ; GFX10-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7181 ; GFX10-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7182 ; GFX10-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7183 ; GFX10-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<2 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 6, [[CONCAT_VECTORS]](<12 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<2 x s32>), addrspace 8)7184 ; GFX10-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>)7185 ; GFX10-NEXT: $vgpr0 = COPY [[UV]](s32)7186 ; GFX10-NEXT: $vgpr1 = COPY [[UV1]](s32)7187 ; GFX10-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr17188 ;7189 ; GFX11-LABEL: name: sample_c_d_o_2darray_V27190 ; GFX11: bb.1.main_body:7191 ; GFX11-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr87192 ; GFX11-NEXT: {{ $}}7193 ; GFX11-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27194 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37195 ; GFX11-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47196 ; GFX11-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57197 ; GFX11-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67198 ; GFX11-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77199 ; GFX11-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87200 ; GFX11-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97201 ; GFX11-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7202 ; GFX11-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107203 ; GFX11-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117204 ; GFX11-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127205 ; GFX11-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137206 ; GFX11-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7207 ; GFX11-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07208 ; GFX11-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17209 ; GFX11-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27210 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7211 ; GFX11-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37212 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7213 ; GFX11-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47214 ; GFX11-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7215 ; GFX11-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57216 ; GFX11-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7217 ; GFX11-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67218 ; GFX11-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7219 ; GFX11-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77220 ; GFX11-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7221 ; GFX11-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87222 ; GFX11-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7223 ; GFX11-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7224 ; GFX11-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7225 ; GFX11-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7226 ; GFX11-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7227 ; GFX11-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7228 ; GFX11-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7229 ; GFX11-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7230 ; GFX11-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7231 ; GFX11-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<2 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 6, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[BUILD_VECTOR3]](<2 x s16>), [[CONCAT_VECTORS]](<4 x s16>), $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<2 x s32>), addrspace 8)7232 ; GFX11-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>)7233 ; GFX11-NEXT: $vgpr0 = COPY [[UV]](s32)7234 ; GFX11-NEXT: $vgpr1 = COPY [[UV1]](s32)7235 ; GFX11-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr17236 ;7237 ; GFX12-LABEL: name: sample_c_d_o_2darray_V27238 ; GFX12: bb.1.main_body:7239 ; GFX12-NEXT: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr87240 ; GFX12-NEXT: {{ $}}7241 ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr27242 ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr37243 ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr47244 ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr57245 ; GFX12-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr67246 ; GFX12-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr77247 ; GFX12-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr87248 ; GFX12-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr97249 ; GFX12-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)7250 ; GFX12-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr107251 ; GFX12-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr117252 ; GFX12-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr127253 ; GFX12-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr137254 ; GFX12-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)7255 ; GFX12-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr07256 ; GFX12-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr17257 ; GFX12-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr27258 ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY14]](s32)7259 ; GFX12-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr37260 ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY15]](s32)7261 ; GFX12-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr47262 ; GFX12-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY16]](s32)7263 ; GFX12-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr57264 ; GFX12-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY17]](s32)7265 ; GFX12-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr67266 ; GFX12-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[COPY18]](s32)7267 ; GFX12-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr77268 ; GFX12-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[COPY19]](s32)7269 ; GFX12-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr87270 ; GFX12-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[COPY20]](s32)7271 ; GFX12-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32)7272 ; GFX12-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32)7273 ; GFX12-NEXT: [[BUILD_VECTOR2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)7274 ; GFX12-NEXT: [[BUILD_VECTOR3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC2]](s16), [[TRUNC3]](s16)7275 ; GFX12-NEXT: [[BUILD_VECTOR4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC4]](s16), [[TRUNC5]](s16)7276 ; GFX12-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF7277 ; GFX12-NEXT: [[BUILD_VECTOR5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC6]](s16), [[DEF]](s16)7278 ; GFX12-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR3]](<2 x s16>), [[BUILD_VECTOR4]](<2 x s16>), [[BUILD_VECTOR5]](<2 x s16>)7279 ; GFX12-NEXT: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<2 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.d.o.2darray), 6, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR2]](<2 x s16>), [[CONCAT_VECTORS]](<6 x s16>), $noreg, $noreg, $noreg, $noreg, $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<2 x s32>), addrspace 8)7280 ; GFX12-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>)7281 ; GFX12-NEXT: $vgpr0 = COPY [[UV]](s32)7282 ; GFX12-NEXT: $vgpr1 = COPY [[UV1]](s32)7283 ; GFX12-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr17284main_body:7285 %v = call <2 x float> @llvm.amdgcn.image.sample.c.d.o.2darray.v2f32.f32.f16(i32 6, i32 %offset, float %zcompare, half %dsdh, half %dtdh, half %dsdv, half %dtdv, half %s, half %t, half %slice, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0)7286 ret <2 x float> %v7287}7288 7289declare <4 x float> @llvm.amdgcn.image.sample.1d.v4f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17290declare <8 x float> @llvm.amdgcn.image.sample.1d.v8f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17291declare <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17292declare <4 x float> @llvm.amdgcn.image.sample.3d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17293declare <4 x float> @llvm.amdgcn.image.sample.cube.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17294declare <4 x float> @llvm.amdgcn.image.sample.1darray.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17295declare <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17296 7297declare <4 x float> @llvm.amdgcn.image.sample.c.1d.v4f32.f16(i32, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17298declare <4 x float> @llvm.amdgcn.image.sample.c.2d.v4f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17299declare <4 x float> @llvm.amdgcn.image.sample.cl.1d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17300declare <4 x float> @llvm.amdgcn.image.sample.cl.2d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17301declare <4 x float> @llvm.amdgcn.image.sample.c.cl.1d.v4f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17302declare <4 x float> @llvm.amdgcn.image.sample.c.cl.2d.v4f32.f16(i32, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17303 7304declare <4 x float> @llvm.amdgcn.image.sample.b.1d.v4f32.f16.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17305declare <4 x float> @llvm.amdgcn.image.sample.b.2d.v4f32.f16.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17306declare <4 x float> @llvm.amdgcn.image.sample.c.b.1d.v4f32.f16.f16(i32, half, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17307declare <4 x float> @llvm.amdgcn.image.sample.c.b.2d.v4f32.f16.f16(i32, half, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17308declare <4 x float> @llvm.amdgcn.image.sample.b.cl.1d.v4f32.f16.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17309declare <4 x float> @llvm.amdgcn.image.sample.b.cl.2d.v4f32.f16.f16(i32, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17310declare <4 x float> @llvm.amdgcn.image.sample.c.b.cl.1d.v4f32.f16.f16(i32, half, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17311declare <4 x float> @llvm.amdgcn.image.sample.c.b.cl.2d.v4f32.f16.f16(i32, half, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17312 7313declare <4 x float> @llvm.amdgcn.image.sample.d.1d.v4f32.f16.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17314declare <4 x float> @llvm.amdgcn.image.sample.d.2d.v4f32.f16.f16(i32, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17315declare <4 x float> @llvm.amdgcn.image.sample.d.3d.v4f32.f16.f16(i32, half, half, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17316declare <4 x float> @llvm.amdgcn.image.sample.c.d.1d.v4f32.f32.f16(i32, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17317declare <4 x float> @llvm.amdgcn.image.sample.c.d.2d.v4f32.f32.f16(i32, float, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17318declare <4 x float> @llvm.amdgcn.image.sample.d.cl.1d.v4f32.f16.f16(i32, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17319declare <4 x float> @llvm.amdgcn.image.sample.d.cl.2d.v4f32.f16.f16(i32, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17320declare <4 x float> @llvm.amdgcn.image.sample.c.d.cl.1d.v4f32.f32.f16(i32, float, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17321declare <4 x float> @llvm.amdgcn.image.sample.c.d.cl.2d.v4f32.f32.f16(i32, float, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17322 7323declare <4 x float> @llvm.amdgcn.image.sample.cd.1d.v4f32.f16.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17324declare <4 x float> @llvm.amdgcn.image.sample.cd.2d.v4f32.f16.f16(i32, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17325declare <4 x float> @llvm.amdgcn.image.sample.c.cd.1d.v4f32.f32.f16(i32, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17326declare <4 x float> @llvm.amdgcn.image.sample.c.cd.2d.v4f32.f32.f16(i32, float, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17327declare <4 x float> @llvm.amdgcn.image.sample.cd.cl.1d.v4f32.f16.f16(i32, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17328declare <4 x float> @llvm.amdgcn.image.sample.cd.cl.2d.v4f32.f16.f16(i32, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17329declare <4 x float> @llvm.amdgcn.image.sample.c.cd.cl.1d.v4f32.f32.f16(i32, float, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17330declare <4 x float> @llvm.amdgcn.image.sample.c.cd.cl.2d.v4f32.f32.f16(i32, float, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17331 7332declare <4 x float> @llvm.amdgcn.image.sample.l.1d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17333declare <4 x float> @llvm.amdgcn.image.sample.l.2d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17334declare <4 x float> @llvm.amdgcn.image.sample.c.l.1d.v4f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17335declare <4 x float> @llvm.amdgcn.image.sample.c.l.2d.v4f32.f16(i32, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17336 7337declare <4 x float> @llvm.amdgcn.image.sample.lz.1d.v4f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17338declare <4 x float> @llvm.amdgcn.image.sample.lz.2d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17339declare <4 x float> @llvm.amdgcn.image.sample.c.lz.1d.v4f32.f16(i32, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17340declare <4 x float> @llvm.amdgcn.image.sample.c.lz.2d.v4f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17341 7342declare float @llvm.amdgcn.image.sample.c.d.o.2darray.f32.f16.f16(i32, i32, float, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17343declare <2 x float> @llvm.amdgcn.image.sample.c.d.o.2darray.v2f32.f32.f16(i32, i32, float, half, half, half, half, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #17344 7345attributes #0 = { nounwind }7346attributes #1 = { nounwind readonly }7347attributes #2 = { nounwind readnone }7348