1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX9 %s 3; RUN: llc -global-isel -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -stop-after=legalizer -o - %s | FileCheck -check-prefix=GFX10 %s 4 5define amdgpu_ps <4 x float> @sample_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s) { 6 ; GFX9-LABEL: name: sample_1d 7 ; GFX9: bb.1.main_body: 8 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0 9 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 10 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 11 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 12 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 13 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 14 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 15 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 16 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 17 ; GFX9: [[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) 18 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 19 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 20 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 21 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 22 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 23 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 24 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32) 25 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[TRUNC]](s16), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 26 ; GFX9: [[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>) 27 ; GFX9: $vgpr0 = COPY [[UV]](s32) 28 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 29 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 30 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 31 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 32 ; GFX10-LABEL: name: sample_1d 33 ; GFX10: bb.1.main_body: 34 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0 35 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 36 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 37 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 38 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 39 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 40 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 41 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 42 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 43 ; GFX10: [[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) 44 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 45 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 46 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 47 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 48 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 49 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 50 ; GFX10: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32) 51 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1d), 15, [[TRUNC]](s16), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 52 ; GFX10: [[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>) 53 ; GFX10: $vgpr0 = COPY [[UV]](s32) 54 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 55 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 56 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 57 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 58main_body: 59 %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) 60 ret <4 x float> %v 61} 62 63define amdgpu_ps <4 x float> @sample_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t) { 64 ; GFX9-LABEL: name: sample_2d 65 ; GFX9: bb.1.main_body: 66 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 67 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 68 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 69 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 70 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 71 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 72 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 73 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 74 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 75 ; GFX9: [[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) 76 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 77 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 78 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 79 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 80 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 81 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 82 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 83 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 84 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 85 ; GFX9: [[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>) 86 ; GFX9: $vgpr0 = COPY [[UV]](s32) 87 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 88 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 89 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 90 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 91 ; GFX10-LABEL: name: sample_2d 92 ; GFX10: bb.1.main_body: 93 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 94 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 95 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 96 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 97 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 98 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 99 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 100 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 101 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 102 ; GFX10: [[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) 103 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 104 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 105 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 106 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 107 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 108 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 109 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 110 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 111 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 112 ; GFX10: [[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>) 113 ; GFX10: $vgpr0 = COPY [[UV]](s32) 114 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 115 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 116 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 117 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 118main_body: 119 %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) 120 ret <4 x float> %v 121} 122 123define amdgpu_ps <4 x float> @sample_3d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %r) { 124 ; GFX9-LABEL: name: sample_3d 125 ; GFX9: bb.1.main_body: 126 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 127 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 128 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 129 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 130 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 131 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 132 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 133 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 134 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 135 ; GFX9: [[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) 136 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 137 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 138 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 139 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 140 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 141 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 142 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 143 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 144 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 145 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 146 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 147 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 148 ; GFX9: [[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>) from custom "ImageResource") 149 ; GFX9: [[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>) 150 ; GFX9: $vgpr0 = COPY [[UV]](s32) 151 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 152 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 153 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 154 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 155 ; GFX10-LABEL: name: sample_3d 156 ; GFX10: bb.1.main_body: 157 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 158 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 159 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 160 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 161 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 162 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 163 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 164 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 165 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 166 ; GFX10: [[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) 167 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 168 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 169 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 170 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 171 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 172 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 173 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 174 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 175 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 176 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 177 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 178 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 179 ; GFX10: [[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>) from custom "ImageResource") 180 ; GFX10: [[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>) 181 ; GFX10: $vgpr0 = COPY [[UV]](s32) 182 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 183 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 184 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 185 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 186main_body: 187 %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) 188 ret <4 x float> %v 189} 190 191define amdgpu_ps <4 x float> @sample_cube(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %face) { 192 ; GFX9-LABEL: name: sample_cube 193 ; GFX9: bb.1.main_body: 194 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 195 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 196 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 197 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 198 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 199 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 200 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 201 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 202 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 203 ; GFX9: [[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) 204 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 205 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 206 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 207 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 208 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 209 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 210 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 211 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 212 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 213 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 214 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 215 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 216 ; GFX9: [[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>) from custom "ImageResource") 217 ; GFX9: [[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>) 218 ; GFX9: $vgpr0 = COPY [[UV]](s32) 219 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 220 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 221 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 222 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 223 ; GFX10-LABEL: name: sample_cube 224 ; GFX10: bb.1.main_body: 225 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 226 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 227 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 228 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 229 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 230 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 231 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 232 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 233 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 234 ; GFX10: [[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) 235 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 236 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 237 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 238 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 239 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 240 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 241 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 242 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 243 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 244 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 245 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 246 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 247 ; GFX10: [[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>) from custom "ImageResource") 248 ; GFX10: [[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>) 249 ; GFX10: $vgpr0 = COPY [[UV]](s32) 250 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 251 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 252 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 253 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 254main_body: 255 %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) 256 ret <4 x float> %v 257} 258 259define amdgpu_ps <4 x float> @sample_1darray(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %slice) { 260 ; GFX9-LABEL: name: sample_1darray 261 ; GFX9: bb.1.main_body: 262 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 263 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 264 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 265 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 266 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 267 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 268 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 269 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 270 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 271 ; GFX9: [[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) 272 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 273 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 274 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 275 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 276 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 277 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 278 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 279 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 280 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 281 ; GFX9: [[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>) 282 ; GFX9: $vgpr0 = COPY [[UV]](s32) 283 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 284 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 285 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 286 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 287 ; GFX10-LABEL: name: sample_1darray 288 ; GFX10: bb.1.main_body: 289 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 290 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 291 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 292 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 293 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 294 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 295 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 296 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 297 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 298 ; GFX10: [[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) 299 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 300 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 301 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 302 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 303 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 304 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 305 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 306 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 307 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.1darray), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 308 ; GFX10: [[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>) 309 ; GFX10: $vgpr0 = COPY [[UV]](s32) 310 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 311 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 312 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 313 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 314main_body: 315 %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) 316 ret <4 x float> %v 317} 318 319define amdgpu_ps <4 x float> @sample_2darray(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %slice) { 320 ; GFX9-LABEL: name: sample_2darray 321 ; GFX9: bb.1.main_body: 322 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 323 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 324 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 325 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 326 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 327 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 328 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 329 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 330 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 331 ; GFX9: [[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) 332 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 333 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 334 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 335 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 336 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 337 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 338 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 339 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 340 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 341 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 342 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 343 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 344 ; GFX9: [[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>) from custom "ImageResource") 345 ; GFX9: [[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>) 346 ; GFX9: $vgpr0 = COPY [[UV]](s32) 347 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 348 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 349 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 350 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 351 ; GFX10-LABEL: name: sample_2darray 352 ; GFX10: bb.1.main_body: 353 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 354 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 355 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 356 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 357 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 358 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 359 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 360 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 361 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 362 ; GFX10: [[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) 363 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 364 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 365 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 366 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 367 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 368 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 369 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 370 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 371 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 372 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 373 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 374 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 375 ; GFX10: [[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>) from custom "ImageResource") 376 ; GFX10: [[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>) 377 ; GFX10: $vgpr0 = COPY [[UV]](s32) 378 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 379 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 380 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 381 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 382main_body: 383 %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) 384 ret <4 x float> %v 385} 386 387define amdgpu_ps <4 x float> @sample_c_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s) { 388 ; GFX9-LABEL: name: sample_c_1d 389 ; GFX9: bb.1.main_body: 390 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 391 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 392 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 393 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 394 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 395 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 396 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 397 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 398 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 399 ; GFX9: [[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) 400 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 401 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 402 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 403 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 404 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 405 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 406 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 407 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 408 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 409 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 410 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 411 ; GFX9: [[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>) from custom "ImageResource") 412 ; GFX9: [[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>) 413 ; GFX9: $vgpr0 = COPY [[UV]](s32) 414 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 415 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 416 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 417 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 418 ; GFX10-LABEL: name: sample_c_1d 419 ; GFX10: bb.1.main_body: 420 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 421 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 422 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 423 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 424 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 425 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 426 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 427 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 428 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 429 ; GFX10: [[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) 430 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 431 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 432 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 433 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 434 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 435 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 436 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 437 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 438 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 439 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 440 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 441 ; GFX10: [[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>) from custom "ImageResource") 442 ; GFX10: [[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>) 443 ; GFX10: $vgpr0 = COPY [[UV]](s32) 444 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 445 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 446 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 447 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 448main_body: 449 %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) 450 ret <4 x float> %v 451} 452 453define amdgpu_ps <4 x float> @sample_c_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s, half %t) { 454 ; GFX9-LABEL: name: sample_c_2d 455 ; GFX9: bb.1.main_body: 456 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 457 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 458 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 459 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 460 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 461 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 462 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 463 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 464 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 465 ; GFX9: [[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) 466 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 467 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 468 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 469 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 470 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 471 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 472 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 473 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 474 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 475 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 476 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 477 ; GFX9: [[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>) from custom "ImageResource") 478 ; GFX9: [[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>) 479 ; GFX9: $vgpr0 = COPY [[UV]](s32) 480 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 481 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 482 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 483 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 484 ; GFX10-LABEL: name: sample_c_2d 485 ; GFX10: bb.1.main_body: 486 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 487 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 488 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 489 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 490 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 491 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 492 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 493 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 494 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 495 ; GFX10: [[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) 496 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 497 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 498 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 499 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 500 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 501 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 502 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 503 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 504 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 505 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 506 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 507 ; GFX10: [[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>) from custom "ImageResource") 508 ; GFX10: [[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>) 509 ; GFX10: $vgpr0 = COPY [[UV]](s32) 510 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 511 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 512 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 513 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 514main_body: 515 %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) 516 ret <4 x float> %v 517} 518 519define amdgpu_ps <4 x float> @sample_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %clamp) { 520 ; GFX9-LABEL: name: sample_cl_1d 521 ; GFX9: bb.1.main_body: 522 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 523 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 524 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 525 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 526 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 527 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 528 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 529 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 530 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 531 ; GFX9: [[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) 532 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 533 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 534 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 535 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 536 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 537 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 538 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 539 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 540 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 541 ; GFX9: [[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>) 542 ; GFX9: $vgpr0 = COPY [[UV]](s32) 543 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 544 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 545 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 546 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 547 ; GFX10-LABEL: name: sample_cl_1d 548 ; GFX10: bb.1.main_body: 549 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 550 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 551 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 552 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 553 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 554 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 555 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 556 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 557 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 558 ; GFX10: [[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) 559 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 560 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 561 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 562 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 563 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 564 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 565 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 566 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 567 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cl.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 568 ; GFX10: [[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>) 569 ; GFX10: $vgpr0 = COPY [[UV]](s32) 570 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 571 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 572 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 573 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 574main_body: 575 %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) 576 ret <4 x float> %v 577} 578 579define amdgpu_ps <4 x float> @sample_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %clamp) { 580 ; GFX9-LABEL: name: sample_cl_2d 581 ; GFX9: bb.1.main_body: 582 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 583 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 584 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 585 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 586 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 587 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 588 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 589 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 590 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 591 ; GFX9: [[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) 592 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 593 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 594 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 595 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 596 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 597 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 598 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 599 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 600 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 601 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 602 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 603 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 604 ; GFX9: [[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>) from custom "ImageResource") 605 ; GFX9: [[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>) 606 ; GFX9: $vgpr0 = COPY [[UV]](s32) 607 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 608 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 609 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 610 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 611 ; GFX10-LABEL: name: sample_cl_2d 612 ; GFX10: bb.1.main_body: 613 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 614 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 615 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 616 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 617 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 618 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 619 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 620 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 621 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 622 ; GFX10: [[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) 623 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 624 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 625 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 626 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 627 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 628 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 629 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 630 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 631 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 632 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 633 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 634 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 635 ; GFX10: [[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>) from custom "ImageResource") 636 ; GFX10: [[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>) 637 ; GFX10: $vgpr0 = COPY [[UV]](s32) 638 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 639 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 640 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 641 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 642main_body: 643 %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) 644 ret <4 x float> %v 645} 646 647define 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) { 648 ; GFX9-LABEL: name: sample_c_cl_1d 649 ; GFX9: bb.1.main_body: 650 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 651 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 652 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 653 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 654 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 655 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 656 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 657 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 658 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 659 ; GFX9: [[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 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 661 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 662 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 663 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 664 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 665 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 666 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 667 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 668 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 669 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 670 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 671 ; GFX9: [[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>) from custom "ImageResource") 672 ; GFX9: [[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>) 673 ; GFX9: $vgpr0 = COPY [[UV]](s32) 674 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 675 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 676 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 677 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 678 ; GFX10-LABEL: name: sample_c_cl_1d 679 ; GFX10: bb.1.main_body: 680 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 681 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 682 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 683 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 684 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 685 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 686 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 687 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 688 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 689 ; GFX10: [[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) 690 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 691 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 692 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 693 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 694 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 695 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 696 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 697 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 698 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 699 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 700 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 701 ; GFX10: [[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>) from custom "ImageResource") 702 ; GFX10: [[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>) 703 ; GFX10: $vgpr0 = COPY [[UV]](s32) 704 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 705 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 706 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 707 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 708main_body: 709 %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) 710 ret <4 x float> %v 711} 712 713define 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) { 714 ; GFX9-LABEL: name: sample_c_cl_2d 715 ; GFX9: bb.1.main_body: 716 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 717 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 718 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 719 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 720 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 721 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 722 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 723 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 724 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 725 ; GFX9: [[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) 726 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 727 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 728 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 729 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 730 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 731 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 732 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 733 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 734 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 735 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 736 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 737 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 738 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 739 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 740 ; GFX9: [[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>) from custom "ImageResource") 741 ; GFX9: [[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>) 742 ; GFX9: $vgpr0 = COPY [[UV]](s32) 743 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 744 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 745 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 746 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 747 ; GFX10-LABEL: name: sample_c_cl_2d 748 ; GFX10: bb.1.main_body: 749 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 750 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 751 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 752 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 753 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 754 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 755 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 756 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 757 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 758 ; GFX10: [[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) 759 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 760 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 761 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 762 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 763 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 764 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 765 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 766 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 767 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 768 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 769 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 770 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 771 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 772 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 773 ; GFX10: [[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>) 774 ; GFX10: $vgpr0 = COPY [[UV]](s32) 775 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 776 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 777 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 778 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 779main_body: 780 %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) 781 ret <4 x float> %v 782} 783 784define amdgpu_ps <4 x float> @sample_b_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, half %s) { 785 ; GFX9-LABEL: name: sample_b_1d 786 ; GFX9: bb.1.main_body: 787 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 788 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 789 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 790 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 791 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 792 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 793 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 794 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 795 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 796 ; GFX9: [[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) 797 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 798 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 799 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 800 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 801 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 802 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 803 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 804 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 805 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 806 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 807 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 808 ; GFX9: [[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>) from custom "ImageResource") 809 ; GFX9: [[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>) 810 ; GFX9: $vgpr0 = COPY [[UV]](s32) 811 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 812 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 813 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 814 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 815 ; GFX10-LABEL: name: sample_b_1d 816 ; GFX10: bb.1.main_body: 817 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 818 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 819 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 820 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 821 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 822 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 823 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 824 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 825 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 826 ; GFX10: [[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) 827 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 828 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 829 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 830 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 831 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 832 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 833 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 834 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 835 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 836 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 837 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 838 ; GFX10: [[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>) from custom "ImageResource") 839 ; GFX10: [[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>) 840 ; GFX10: $vgpr0 = COPY [[UV]](s32) 841 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 842 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 843 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 844 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 845main_body: 846 %v = call <4 x float> @llvm.amdgcn.image.sample.b.1d.v4f32.f32.f16(i32 15, float %bias, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 847 ret <4 x float> %v 848} 849 850define amdgpu_ps <4 x float> @sample_b_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, half %s, half %t) { 851 ; GFX9-LABEL: name: sample_b_2d 852 ; GFX9: bb.1.main_body: 853 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 854 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 855 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 856 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 857 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 858 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 859 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 860 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 861 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 862 ; GFX9: [[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) 863 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 864 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 865 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 866 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 867 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 868 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 869 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 870 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 871 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 872 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 873 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 874 ; GFX9: [[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>) from custom "ImageResource") 875 ; GFX9: [[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>) 876 ; GFX9: $vgpr0 = COPY [[UV]](s32) 877 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 878 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 879 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 880 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 881 ; GFX10-LABEL: name: sample_b_2d 882 ; GFX10: bb.1.main_body: 883 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 884 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 885 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 886 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 887 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 888 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 889 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 890 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 891 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 892 ; GFX10: [[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) 893 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 894 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 895 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 896 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 897 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 898 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 899 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 900 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 901 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 902 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 903 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 904 ; GFX10: [[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>) from custom "ImageResource") 905 ; GFX10: [[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>) 906 ; GFX10: $vgpr0 = COPY [[UV]](s32) 907 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 908 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 909 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 910 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 911main_body: 912 %v = call <4 x float> @llvm.amdgcn.image.sample.b.2d.v4f32.f32.f16(i32 15, float %bias, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 913 ret <4 x float> %v 914} 915 916define amdgpu_ps <4 x float> @sample_c_b_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, float %zcompare, half %s) { 917 ; GFX9-LABEL: name: sample_c_b_1d 918 ; GFX9: bb.1.main_body: 919 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 920 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 921 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 922 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 923 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 924 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 925 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 926 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 927 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 928 ; GFX9: [[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) 929 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 930 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 931 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 932 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 933 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 934 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 935 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 936 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 937 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 938 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 939 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 940 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 941 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 942 ; GFX9: [[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>) from custom "ImageResource") 943 ; GFX9: [[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>) 944 ; GFX9: $vgpr0 = COPY [[UV]](s32) 945 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 946 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 947 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 948 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 949 ; GFX10-LABEL: name: sample_c_b_1d 950 ; GFX10: bb.1.main_body: 951 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 952 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 953 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 954 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 955 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 956 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 957 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 958 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 959 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 960 ; GFX10: [[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) 961 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 962 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 963 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 964 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 965 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 966 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 967 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 968 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 969 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 970 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 971 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 972 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 973 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.1d), 15, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 974 ; GFX10: [[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>) 975 ; GFX10: $vgpr0 = COPY [[UV]](s32) 976 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 977 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 978 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 979 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 980main_body: 981 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.1d.v4f32.f32.f16(i32 15, float %bias, float %zcompare, half %s, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 982 ret <4 x float> %v 983} 984 985define amdgpu_ps <4 x float> @sample_c_b_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, float %zcompare, half %s, half %t) { 986 ; GFX9-LABEL: name: sample_c_b_2d 987 ; GFX9: bb.1.main_body: 988 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 989 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 990 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 991 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 992 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 993 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 994 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 995 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 996 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 997 ; GFX9: [[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) 998 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 999 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1000 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1001 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1002 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1003 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1004 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1005 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1006 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1007 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1008 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1009 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1010 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 1011 ; GFX9: [[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>) from custom "ImageResource") 1012 ; GFX9: [[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>) 1013 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1014 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1015 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1016 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1017 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1018 ; GFX10-LABEL: name: sample_c_b_2d 1019 ; GFX10: bb.1.main_body: 1020 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1021 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1022 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1023 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1024 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1025 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1026 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1027 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1028 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1029 ; GFX10: [[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) 1030 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1031 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1032 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1033 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1034 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1035 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1036 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1037 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1038 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1039 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1040 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1041 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1042 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.2d), 15, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1043 ; GFX10: [[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>) 1044 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1045 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1046 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1047 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1048 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1049main_body: 1050 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.2d.v4f32.f32.f16(i32 15, float %bias, float %zcompare, half %s, half %t, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 1051 ret <4 x float> %v 1052} 1053 1054define amdgpu_ps <4 x float> @sample_b_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, half %s, half %clamp) { 1055 ; GFX9-LABEL: name: sample_b_cl_1d 1056 ; GFX9: bb.1.main_body: 1057 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 1058 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1059 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1060 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1061 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1062 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1063 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1064 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1065 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1066 ; GFX9: [[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) 1067 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1068 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1069 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1070 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1071 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1072 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1073 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1074 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1075 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1076 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1077 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 1078 ; GFX9: [[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>) from custom "ImageResource") 1079 ; GFX9: [[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>) 1080 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1081 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1082 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1083 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1084 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1085 ; GFX10-LABEL: name: sample_b_cl_1d 1086 ; GFX10: bb.1.main_body: 1087 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 1088 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1089 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1090 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1091 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1092 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1093 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1094 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1095 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1096 ; GFX10: [[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) 1097 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1098 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1099 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1100 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1101 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1102 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1103 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1104 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1105 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1106 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1107 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 1108 ; GFX10: [[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>) from custom "ImageResource") 1109 ; GFX10: [[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>) 1110 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1111 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1112 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1113 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1114 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1115main_body: 1116 %v = call <4 x float> @llvm.amdgcn.image.sample.b.cl.1d.v4f32.f32.f16(i32 15, float %bias, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 1117 ret <4 x float> %v 1118} 1119 1120define amdgpu_ps <4 x float> @sample_b_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, half %s, half %t, half %clamp) { 1121 ; GFX9-LABEL: name: sample_b_cl_2d 1122 ; GFX9: bb.1.main_body: 1123 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1124 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1125 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1126 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1127 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1128 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1129 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1130 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1131 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1132 ; GFX9: [[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) 1133 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1134 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1135 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1136 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1137 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1138 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1139 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1140 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1141 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1142 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1143 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1144 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1145 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 1146 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 1147 ; GFX9: [[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>) from custom "ImageResource") 1148 ; GFX9: [[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>) 1149 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1150 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1151 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1152 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1153 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1154 ; GFX10-LABEL: name: sample_b_cl_2d 1155 ; GFX10: bb.1.main_body: 1156 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1157 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1158 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1159 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1160 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1161 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1162 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1163 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1164 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1165 ; GFX10: [[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) 1166 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1167 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1168 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1169 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1170 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1171 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1172 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1173 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1174 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1175 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1176 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1177 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1178 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 1179 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.b.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1180 ; GFX10: [[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>) 1181 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1182 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1183 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1184 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1185 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1186main_body: 1187 %v = call <4 x float> @llvm.amdgcn.image.sample.b.cl.2d.v4f32.f32.f16(i32 15, float %bias, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 1188 ret <4 x float> %v 1189} 1190 1191define amdgpu_ps <4 x float> @sample_c_b_cl_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, float %zcompare, half %s, half %clamp) { 1192 ; GFX9-LABEL: name: sample_c_b_cl_1d 1193 ; GFX9: bb.1.main_body: 1194 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1195 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1196 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1197 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1198 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1199 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1200 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1201 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1202 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1203 ; GFX9: [[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) 1204 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1205 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1206 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1207 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1208 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1209 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1210 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1211 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1212 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1213 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1214 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1215 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1216 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 1217 ; GFX9: [[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>) from custom "ImageResource") 1218 ; GFX9: [[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 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1220 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1221 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1222 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1223 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1224 ; GFX10-LABEL: name: sample_c_b_cl_1d 1225 ; GFX10: bb.1.main_body: 1226 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1227 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1228 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1229 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1230 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1231 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1232 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1233 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1234 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1235 ; GFX10: [[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) 1236 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1237 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1238 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1239 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1240 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1241 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1242 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1243 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1244 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1245 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1246 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1247 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1248 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.1d), 15, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1249 ; GFX10: [[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>) 1250 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1251 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1252 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1253 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1254 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1255main_body: 1256 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.cl.1d.v4f32.f32.f16(i32 15, float %bias, float %zcompare, half %s, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 1257 ret <4 x float> %v 1258} 1259 1260define amdgpu_ps <4 x float> @sample_c_b_cl_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %bias, float %zcompare, half %s, half %t, half %clamp) { 1261 ; GFX9-LABEL: name: sample_c_b_cl_2d 1262 ; GFX9: bb.1.main_body: 1263 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 1264 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1265 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1266 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1267 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1268 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1269 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1270 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1271 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1272 ; GFX9: [[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) 1273 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1274 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1275 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1276 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1277 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1278 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1279 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1280 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1281 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1282 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1283 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1284 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1285 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1286 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1287 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[DEF]](s32) 1288 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 1289 ; GFX9: [[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>) from custom "ImageResource") 1290 ; GFX9: [[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>) 1291 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1292 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1293 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1294 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1295 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1296 ; GFX10-LABEL: name: sample_c_b_cl_2d 1297 ; GFX10: bb.1.main_body: 1298 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 1299 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1300 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1301 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1302 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1303 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1304 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1305 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1306 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1307 ; GFX10: [[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) 1308 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1309 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1310 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1311 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1312 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1313 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1314 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1315 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1316 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1317 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1318 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1319 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 1320 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1321 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1322 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[DEF]](s32) 1323 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.c.b.cl.2d), 15, [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1324 ; GFX10: [[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>) 1325 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1326 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1327 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1328 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1329 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1330main_body: 1331 %v = call <4 x float> @llvm.amdgcn.image.sample.c.b.cl.2d.v4f32.f32.f16(i32 15, float %bias, float %zcompare, half %s, half %t, half %clamp, <8 x i32> %rsrc, <4 x i32> %samp, i1 0, i32 0, i32 0) 1332 ret <4 x float> %v 1333} 1334 1335define amdgpu_ps <4 x float> @sample_d_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s) { 1336 ; GFX9-LABEL: name: sample_d_1d 1337 ; GFX9: bb.1.main_body: 1338 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 1339 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1340 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1341 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1342 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1343 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1344 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1345 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1346 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1347 ; GFX9: [[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) 1348 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1349 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1350 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1351 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1352 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1353 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1354 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1355 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1356 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1357 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 1358 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1359 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1360 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1361 ; GFX9: [[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>) from custom "ImageResource") 1362 ; GFX9: [[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>) 1363 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1364 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1365 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1366 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1367 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1368 ; GFX10-LABEL: name: sample_d_1d 1369 ; GFX10: bb.1.main_body: 1370 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 1371 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1372 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1373 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1374 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1375 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1376 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1377 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1378 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1379 ; GFX10: [[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) 1380 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1381 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1382 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1383 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1384 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1385 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1386 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1387 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1388 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1389 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 1390 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1391 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1392 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1393 ; GFX10: [[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>) 1394 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1395 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1396 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1397 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1398 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1399main_body: 1400 %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) 1401 ret <4 x float> %v 1402} 1403 1404define 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) { 1405 ; GFX9-LABEL: name: sample_d_2d 1406 ; GFX9: bb.1.main_body: 1407 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5 1408 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1409 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1410 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1411 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1412 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1413 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1414 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1415 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1416 ; GFX9: [[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) 1417 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1418 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1419 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1420 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1421 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1422 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1423 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1424 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1425 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1426 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1427 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1428 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1429 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1430 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 1431 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1432 ; GFX9: [[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>) from custom "ImageResource") 1433 ; GFX9: [[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>) 1434 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1435 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1436 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1437 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1438 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1439 ; GFX10-LABEL: name: sample_d_2d 1440 ; GFX10: bb.1.main_body: 1441 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5 1442 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1443 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1444 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1445 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1446 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1447 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1448 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1449 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1450 ; GFX10: [[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) 1451 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1452 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1453 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1454 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1455 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1456 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1457 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1458 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1459 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1460 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1461 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1462 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1463 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1464 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 1465 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<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>) from custom "ImageResource") 1466 ; GFX10: [[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>) 1467 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1468 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1469 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1470 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1471 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1472main_body: 1473 %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) 1474 ret <4 x float> %v 1475} 1476 1477define 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) { 1478 ; GFX9-LABEL: name: sample_d_3d 1479 ; GFX9: bb.1.main_body: 1480 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1481 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1482 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1483 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1484 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1485 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1486 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1487 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1488 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1489 ; GFX9: [[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) 1490 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1491 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1492 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1493 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1494 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1495 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1496 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1497 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1498 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1499 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1500 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1501 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1502 ; GFX9: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 1503 ; GFX9: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 1504 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1505 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1506 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1507 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1508 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[DEF]](s32) 1509 ; GFX9: [[BUILD_VECTOR_TRUNC4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 1510 ; GFX9: [[BUILD_VECTOR_TRUNC5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 1511 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>), [[BUILD_VECTOR_TRUNC4]](<2 x s16>), [[BUILD_VECTOR_TRUNC5]](<2 x s16>) 1512 ; GFX9: [[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>) from custom "ImageResource") 1513 ; GFX9: [[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>) 1514 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1515 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1516 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1517 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1518 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1519 ; GFX10-LABEL: name: sample_d_3d 1520 ; GFX10: bb.1.main_body: 1521 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 1522 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1523 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1524 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1525 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1526 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1527 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1528 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1529 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1530 ; GFX10: [[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) 1531 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1532 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1533 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1534 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1535 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1536 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1537 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1538 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1539 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1540 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1541 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1542 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1543 ; GFX10: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 1544 ; GFX10: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 1545 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1546 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1547 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1548 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1549 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[DEF]](s32) 1550 ; GFX10: [[BUILD_VECTOR_TRUNC4:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 1551 ; GFX10: [[BUILD_VECTOR_TRUNC5:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 1552 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>), [[BUILD_VECTOR_TRUNC4]](<2 x s16>), [[BUILD_VECTOR_TRUNC5]](<2 x s16>) 1553 ; GFX10: [[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>) from custom "ImageResource") 1554 ; GFX10: [[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>) 1555 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1556 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1557 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1558 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1559 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1560main_body: 1561 %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) 1562 ret <4 x float> %v 1563} 1564 1565define 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) { 1566 ; GFX9-LABEL: name: sample_c_d_1d 1567 ; GFX9: bb.1.main_body: 1568 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1569 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1570 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1571 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1572 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1573 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1574 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1575 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1576 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1577 ; GFX9: [[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) 1578 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1579 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1580 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1581 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1582 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1583 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1584 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1585 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1586 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1587 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1588 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1589 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1590 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1591 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 1592 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1593 ; GFX9: [[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>) from custom "ImageResource") 1594 ; GFX9: [[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>) 1595 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1596 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1597 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1598 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1599 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1600 ; GFX10-LABEL: name: sample_c_d_1d 1601 ; GFX10: bb.1.main_body: 1602 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1603 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1604 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1605 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1606 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1607 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1608 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1609 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1610 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1611 ; GFX10: [[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) 1612 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1613 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1614 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1615 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1616 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1617 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1618 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1619 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1620 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1621 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1622 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1623 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1624 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1625 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 1626 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1627 ; GFX10: [[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>) 1628 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1629 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1630 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1631 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1632 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1633main_body: 1634 %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) 1635 ret <4 x float> %v 1636} 1637 1638define 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) { 1639 ; GFX9-LABEL: name: sample_c_d_2d 1640 ; GFX9: bb.1.main_body: 1641 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 1642 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1643 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1644 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1645 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1646 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1647 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1648 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1649 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1650 ; GFX9: [[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) 1651 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1652 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1653 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1654 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1655 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1656 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1657 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1658 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1659 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1660 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1661 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1662 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1663 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1664 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1665 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1666 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 1667 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1668 ; GFX9: [[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>) from custom "ImageResource") 1669 ; GFX9: [[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>) 1670 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1671 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1672 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1673 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1674 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1675 ; GFX10-LABEL: name: sample_c_d_2d 1676 ; GFX10: bb.1.main_body: 1677 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 1678 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1679 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1680 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1681 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1682 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1683 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1684 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1685 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1686 ; GFX10: [[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) 1687 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1688 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1689 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1690 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1691 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1692 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1693 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1694 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1695 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1696 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1697 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1698 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1699 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1700 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1701 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1702 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 1703 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<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>) from custom "ImageResource") 1704 ; GFX10: [[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>) 1705 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1706 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1707 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1708 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1709 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1710main_body: 1711 %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) 1712 ret <4 x float> %v 1713} 1714 1715define 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) { 1716 ; GFX9-LABEL: name: sample_d_cl_1d 1717 ; GFX9: bb.1.main_body: 1718 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1719 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1720 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1721 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1722 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1723 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1724 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1725 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1726 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1727 ; GFX9: [[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) 1728 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1729 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1730 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1731 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1732 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1733 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1734 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1735 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1736 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1737 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1738 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 1739 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1740 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1741 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1742 ; GFX9: [[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>) from custom "ImageResource") 1743 ; GFX9: [[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>) 1744 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1745 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1746 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1747 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1748 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1749 ; GFX10-LABEL: name: sample_d_cl_1d 1750 ; GFX10: bb.1.main_body: 1751 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 1752 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1753 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1754 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1755 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1756 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1757 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1758 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1759 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1760 ; GFX10: [[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) 1761 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1762 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1763 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1764 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1765 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1766 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1767 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1768 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1769 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1770 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1771 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 1772 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1773 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1774 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1775 ; GFX10: [[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>) 1776 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1777 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1778 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1779 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1780 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1781main_body: 1782 %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) 1783 ret <4 x float> %v 1784} 1785 1786define 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) { 1787 ; GFX9-LABEL: name: sample_d_cl_2d 1788 ; GFX9: bb.1.main_body: 1789 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 1790 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1791 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1792 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1793 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1794 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1795 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1796 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1797 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1798 ; GFX9: [[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) 1799 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1800 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1801 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1802 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1803 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1804 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1805 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1806 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1807 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1808 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1809 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1810 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1811 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1812 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1813 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 1814 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1815 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[DEF]](s32) 1816 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 1817 ; GFX9: [[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>) from custom "ImageResource") 1818 ; GFX9: [[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>) 1819 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1820 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1821 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1822 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1823 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1824 ; GFX10-LABEL: name: sample_d_cl_2d 1825 ; GFX10: bb.1.main_body: 1826 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 1827 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1828 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1829 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1830 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1831 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1832 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1833 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1834 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1835 ; GFX10: [[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) 1836 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1837 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1838 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1839 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1840 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1841 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1842 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1843 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1844 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1845 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1846 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1847 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1848 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 1849 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 1850 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 1851 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1852 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[DEF]](s32) 1853 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.d.cl.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<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>) from custom "ImageResource") 1854 ; GFX10: [[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>) 1855 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1856 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1857 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1858 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1859 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1860main_body: 1861 %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) 1862 ret <4 x float> %v 1863} 1864 1865define 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) { 1866 ; GFX9-LABEL: name: sample_c_d_cl_1d 1867 ; GFX9: bb.1.main_body: 1868 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 1869 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1870 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1871 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1872 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1873 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1874 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1875 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1876 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1877 ; GFX9: [[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) 1878 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1879 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1880 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1881 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1882 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1883 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1884 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1885 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1886 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1887 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1888 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1889 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1890 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1891 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1892 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1893 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 1894 ; GFX9: [[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>) from custom "ImageResource") 1895 ; GFX9: [[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>) 1896 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1897 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1898 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1899 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1900 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1901 ; GFX10-LABEL: name: sample_c_d_cl_1d 1902 ; GFX10: bb.1.main_body: 1903 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 1904 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1905 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1906 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1907 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1908 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1909 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1910 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1911 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1912 ; GFX10: [[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) 1913 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1914 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1915 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1916 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1917 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1918 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1919 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1920 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1921 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1922 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1923 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1924 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1925 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 1926 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 1927 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1928 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 1929 ; GFX10: [[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>) 1930 ; GFX10: $vgpr0 = COPY [[UV]](s32) 1931 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 1932 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 1933 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 1934 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1935main_body: 1936 %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) 1937 ret <4 x float> %v 1938} 1939 1940define 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) { 1941 ; GFX9-LABEL: name: sample_c_d_cl_2d 1942 ; GFX9: bb.1.main_body: 1943 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7 1944 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1945 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1946 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1947 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1948 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1949 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1950 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1951 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1952 ; GFX9: [[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) 1953 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1954 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1955 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1956 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1957 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1958 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1959 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1960 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 1961 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 1962 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 1963 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 1964 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 1965 ; GFX9: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 1966 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 1967 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 1968 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 1969 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 1970 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 1971 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY19]](s32), [[DEF]](s32) 1972 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<10 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 1973 ; GFX9: [[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>) from custom "ImageResource") 1974 ; GFX9: [[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>) 1975 ; GFX9: $vgpr0 = COPY [[UV]](s32) 1976 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 1977 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 1978 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 1979 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 1980 ; GFX10-LABEL: name: sample_c_d_cl_2d 1981 ; GFX10: bb.1.main_body: 1982 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7 1983 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 1984 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 1985 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 1986 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 1987 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 1988 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 1989 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 1990 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 1991 ; GFX10: [[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) 1992 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 1993 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 1994 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 1995 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 1996 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 1997 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 1998 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 1999 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2000 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2001 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2002 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2003 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2004 ; GFX10: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 2005 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2006 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2007 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2008 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 2009 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2010 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY19]](s32), [[DEF]](s32) 2011 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<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>) from custom "ImageResource") 2012 ; GFX10: [[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>) 2013 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2014 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2015 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2016 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2017 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2018main_body: 2019 %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) 2020 ret <4 x float> %v 2021} 2022 2023define amdgpu_ps <4 x float> @sample_cd_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %dsdh, half %dsdv, half %s) { 2024 ; GFX9-LABEL: name: sample_cd_1d 2025 ; GFX9: bb.1.main_body: 2026 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2027 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2028 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2029 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2030 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2031 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2032 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2033 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2034 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2035 ; GFX9: [[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 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2037 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2038 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2039 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2040 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2041 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2042 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2043 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2044 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2045 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 2046 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2047 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2048 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2049 ; GFX9: [[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>) from custom "ImageResource") 2050 ; GFX9: [[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>) 2051 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2052 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2053 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2054 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2055 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2056 ; GFX10-LABEL: name: sample_cd_1d 2057 ; GFX10: bb.1.main_body: 2058 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2059 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2060 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2061 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2062 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2063 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2064 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2065 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2066 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2067 ; GFX10: [[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) 2068 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2069 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2070 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2071 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2072 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2073 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2074 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2075 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2076 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2077 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 2078 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2079 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2080 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2081 ; GFX10: [[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>) 2082 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2083 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2084 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2085 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2086 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2087main_body: 2088 %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) 2089 ret <4 x float> %v 2090} 2091 2092define 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) { 2093 ; GFX9-LABEL: name: sample_cd_2d 2094 ; GFX9: bb.1.main_body: 2095 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5 2096 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2097 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2098 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2099 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2100 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2101 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2102 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2103 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2104 ; GFX9: [[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) 2105 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2106 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2107 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2108 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2109 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2110 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2111 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2112 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2113 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2114 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2115 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2116 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2117 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2118 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 2119 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2120 ; GFX9: [[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>) from custom "ImageResource") 2121 ; GFX9: [[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>) 2122 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2123 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2124 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2125 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2126 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2127 ; GFX10-LABEL: name: sample_cd_2d 2128 ; GFX10: bb.1.main_body: 2129 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5 2130 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2131 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2132 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2133 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2134 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2135 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2136 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2137 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2138 ; GFX10: [[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) 2139 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2140 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2141 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2142 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2143 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2144 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2145 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2146 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2147 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2148 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2149 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2150 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2151 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2152 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 2153 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<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>) from custom "ImageResource") 2154 ; GFX10: [[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>) 2155 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2156 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2157 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2158 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2159 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2160main_body: 2161 %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) 2162 ret <4 x float> %v 2163} 2164 2165define 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) { 2166 ; GFX9-LABEL: name: sample_c_cd_1d 2167 ; GFX9: bb.1.main_body: 2168 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2169 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2170 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2171 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2172 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2173 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2174 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2175 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2176 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2177 ; GFX9: [[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) 2178 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2179 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2180 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2181 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2182 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2183 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2184 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2185 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2186 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2187 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2188 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2189 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2190 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2191 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 2192 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2193 ; GFX9: [[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>) from custom "ImageResource") 2194 ; GFX9: [[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>) 2195 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2196 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2197 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2198 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2199 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2200 ; GFX10-LABEL: name: sample_c_cd_1d 2201 ; GFX10: bb.1.main_body: 2202 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2203 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2204 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2205 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2206 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2207 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2208 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2209 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2210 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2211 ; GFX10: [[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) 2212 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2213 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2214 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2215 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2216 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2217 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2218 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2219 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2220 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2221 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2222 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2223 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2224 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2225 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 2226 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2227 ; GFX10: [[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>) 2228 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2229 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2230 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2231 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2232 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2233main_body: 2234 %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) 2235 ret <4 x float> %v 2236} 2237 2238define 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) { 2239 ; GFX9-LABEL: name: sample_c_cd_2d 2240 ; GFX9: bb.1.main_body: 2241 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 2242 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2243 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2244 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2245 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2246 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2247 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2248 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2249 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2250 ; GFX9: [[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) 2251 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2252 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2253 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2254 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2255 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2256 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2257 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2258 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2259 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2260 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2261 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2262 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2263 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2264 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2265 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2266 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 2267 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2268 ; GFX9: [[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>) from custom "ImageResource") 2269 ; GFX9: [[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>) 2270 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2271 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2272 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2273 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2274 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2275 ; GFX10-LABEL: name: sample_c_cd_2d 2276 ; GFX10: bb.1.main_body: 2277 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 2278 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2279 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2280 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2281 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2282 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2283 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2284 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2285 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2286 ; GFX10: [[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) 2287 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2288 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2289 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2290 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2291 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2292 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2293 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2294 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2295 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2296 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2297 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2298 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2299 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2300 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2301 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2302 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 2303 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<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>) from custom "ImageResource") 2304 ; GFX10: [[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>) 2305 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2306 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2307 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2308 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2309 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2310main_body: 2311 %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) 2312 ret <4 x float> %v 2313} 2314 2315define 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) { 2316 ; GFX9-LABEL: name: sample_cd_cl_1d 2317 ; GFX9: bb.1.main_body: 2318 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2319 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2320 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2321 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2322 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2323 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2324 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2325 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2326 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2327 ; GFX9: [[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) 2328 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2329 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2330 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2331 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2332 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2333 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2334 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2335 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2336 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2337 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2338 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 2339 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2340 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2341 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2342 ; GFX9: [[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>) from custom "ImageResource") 2343 ; GFX9: [[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>) 2344 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2345 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2346 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2347 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2348 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2349 ; GFX10-LABEL: name: sample_cd_cl_1d 2350 ; GFX10: bb.1.main_body: 2351 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2352 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2353 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2354 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2355 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2356 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2357 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2358 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2359 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2360 ; GFX10: [[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) 2361 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2362 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2363 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2364 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2365 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2366 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2367 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2368 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2369 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2370 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2371 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[DEF]](s32) 2372 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2373 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2374 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2375 ; GFX10: [[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>) 2376 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2377 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2378 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2379 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2380 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2381main_body: 2382 %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) 2383 ret <4 x float> %v 2384} 2385 2386define 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) { 2387 ; GFX9-LABEL: name: sample_cd_cl_2d 2388 ; GFX9: bb.1.main_body: 2389 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 2390 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2391 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2392 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2393 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2394 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2395 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2396 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2397 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2398 ; GFX9: [[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) 2399 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2400 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2401 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2402 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2403 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2404 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2405 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2406 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2407 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2408 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2409 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2410 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2411 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2412 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2413 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 2414 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2415 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[DEF]](s32) 2416 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 2417 ; GFX9: [[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>) from custom "ImageResource") 2418 ; GFX9: [[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>) 2419 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2420 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2421 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2422 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2423 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2424 ; GFX10-LABEL: name: sample_cd_cl_2d 2425 ; GFX10: bb.1.main_body: 2426 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6 2427 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2428 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2429 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2430 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2431 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2432 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2433 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2434 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2435 ; GFX10: [[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) 2436 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2437 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2438 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2439 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2440 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2441 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2442 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2443 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2444 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2445 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2446 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2447 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2448 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2449 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 2450 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 2451 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2452 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[DEF]](s32) 2453 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.cd.cl.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<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>) from custom "ImageResource") 2454 ; GFX10: [[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>) 2455 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2456 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2457 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2458 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2459 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2460main_body: 2461 %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) 2462 ret <4 x float> %v 2463} 2464 2465define 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) { 2466 ; GFX9-LABEL: name: sample_c_cd_cl_1d 2467 ; GFX9: bb.1.main_body: 2468 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 2469 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2470 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2471 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2472 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2473 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2474 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2475 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2476 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2477 ; GFX9: [[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) 2478 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2479 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2480 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2481 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2482 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2483 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2484 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2485 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2486 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2487 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2488 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2489 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2490 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2491 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2492 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2493 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<8 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>) 2494 ; GFX9: [[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>) from custom "ImageResource") 2495 ; GFX9: [[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>) 2496 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2497 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2498 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2499 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2500 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2501 ; GFX10-LABEL: name: sample_c_cd_cl_1d 2502 ; GFX10: bb.1.main_body: 2503 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4 2504 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2505 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2506 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2507 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2508 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2509 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2510 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2511 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2512 ; GFX10: [[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) 2513 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2514 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2515 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2516 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2517 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2518 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2519 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2520 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2521 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2522 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2523 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2524 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2525 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 2526 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2527 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2528 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2529 ; GFX10: [[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>) 2530 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2531 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2532 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2533 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2534 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2535main_body: 2536 %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) 2537 ret <4 x float> %v 2538} 2539 2540define 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) { 2541 ; GFX9-LABEL: name: sample_c_cd_cl_2d 2542 ; GFX9: bb.1.main_body: 2543 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7 2544 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2545 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2546 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2547 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2548 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2549 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2550 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2551 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2552 ; GFX9: [[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) 2553 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2554 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2555 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2556 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2557 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2558 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2559 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2560 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2561 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2562 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2563 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2564 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2565 ; GFX9: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 2566 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2567 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2568 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2569 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 2570 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2571 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY19]](s32), [[DEF]](s32) 2572 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<10 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 2573 ; GFX9: [[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>) from custom "ImageResource") 2574 ; GFX9: [[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>) 2575 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2576 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2577 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2578 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2579 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2580 ; GFX10-LABEL: name: sample_c_cd_cl_2d 2581 ; GFX10: bb.1.main_body: 2582 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7 2583 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2584 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2585 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2586 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2587 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2588 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2589 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2590 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2591 ; GFX10: [[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) 2592 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2593 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2594 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2595 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2596 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2597 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2598 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2599 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2600 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2601 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 2602 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 2603 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 2604 ; GFX10: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 2605 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2606 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2607 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[COPY16]](s32) 2608 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY17]](s32), [[COPY18]](s32) 2609 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2610 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY19]](s32), [[DEF]](s32) 2611 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<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>) from custom "ImageResource") 2612 ; GFX10: [[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>) 2613 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2614 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2615 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2616 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2617 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2618main_body: 2619 %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) 2620 ret <4 x float> %v 2621} 2622 2623define amdgpu_ps <4 x float> @sample_l_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %lod) { 2624 ; GFX9-LABEL: name: sample_l_1d 2625 ; GFX9: bb.1.main_body: 2626 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 2627 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2628 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2629 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2630 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2631 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2632 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2633 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2634 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2635 ; GFX9: [[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) 2636 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2637 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2638 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2639 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2640 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2641 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2642 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2643 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2644 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2645 ; GFX9: [[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>) 2646 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2647 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2648 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2649 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2650 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2651 ; GFX10-LABEL: name: sample_l_1d 2652 ; GFX10: bb.1.main_body: 2653 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 2654 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2655 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2656 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2657 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2658 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2659 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2660 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2661 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2662 ; GFX10: [[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) 2663 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2664 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2665 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2666 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2667 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2668 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2669 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2670 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2671 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.l.1d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2672 ; GFX10: [[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>) 2673 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2674 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2675 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2676 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2677 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2678main_body: 2679 %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) 2680 ret <4 x float> %v 2681} 2682 2683define amdgpu_ps <4 x float> @sample_l_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t, half %lod) { 2684 ; GFX9-LABEL: name: sample_l_2d 2685 ; GFX9: bb.1.main_body: 2686 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2687 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2688 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2689 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2690 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2691 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2692 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2693 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2694 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2695 ; GFX9: [[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) 2696 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2697 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2698 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2699 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2700 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2701 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2702 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2703 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2704 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2705 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2706 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2707 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 2708 ; GFX9: [[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>) from custom "ImageResource") 2709 ; GFX9: [[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>) 2710 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2711 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2712 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2713 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2714 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2715 ; GFX10-LABEL: name: sample_l_2d 2716 ; GFX10: bb.1.main_body: 2717 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2718 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2719 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2720 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2721 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2722 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2723 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2724 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2725 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2726 ; GFX10: [[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) 2727 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2728 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2729 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2730 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2731 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2732 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2733 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2734 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2735 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2736 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2737 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[DEF]](s32) 2738 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 2739 ; GFX10: [[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>) from custom "ImageResource") 2740 ; GFX10: [[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>) 2741 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2742 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2743 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2744 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2745 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2746main_body: 2747 %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) 2748 ret <4 x float> %v 2749} 2750 2751define 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) { 2752 ; GFX9-LABEL: name: sample_c_l_1d 2753 ; GFX9: bb.1.main_body: 2754 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2755 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2756 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2757 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2758 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2759 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2760 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2761 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2762 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2763 ; GFX9: [[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 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2765 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2766 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2767 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2768 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2769 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2770 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2771 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2772 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2773 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2774 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 2775 ; GFX9: [[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>) from custom "ImageResource") 2776 ; GFX9: [[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>) 2777 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2778 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2779 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2780 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2781 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2782 ; GFX10-LABEL: name: sample_c_l_1d 2783 ; GFX10: bb.1.main_body: 2784 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 2785 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2786 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2787 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2788 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2789 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2790 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2791 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2792 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2793 ; GFX10: [[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) 2794 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2795 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2796 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2797 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2798 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2799 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2800 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2801 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2802 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2803 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2804 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 2805 ; GFX10: [[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>) from custom "ImageResource") 2806 ; GFX10: [[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>) 2807 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2808 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2809 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2810 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2811 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2812main_body: 2813 %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) 2814 ret <4 x float> %v 2815} 2816 2817define 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) { 2818 ; GFX9-LABEL: name: sample_c_l_2d 2819 ; GFX9: bb.1.main_body: 2820 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2821 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2822 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2823 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2824 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2825 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2826 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2827 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2828 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2829 ; GFX9: [[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) 2830 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2831 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2832 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2833 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2834 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2835 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2836 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2837 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2838 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2839 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2840 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2841 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2842 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 2843 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>) 2844 ; GFX9: [[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>) from custom "ImageResource") 2845 ; GFX9: [[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>) 2846 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2847 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2848 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2849 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2850 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2851 ; GFX10-LABEL: name: sample_c_l_2d 2852 ; GFX10: bb.1.main_body: 2853 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3 2854 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2855 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2856 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2857 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2858 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2859 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2860 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2861 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2862 ; GFX10: [[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) 2863 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2864 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2865 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2866 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2867 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2868 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2869 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2870 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 2871 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 2872 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 2873 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 2874 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 2875 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY15]](s32), [[DEF]](s32) 2876 ; GFX10: [[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_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2877 ; GFX10: [[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>) 2878 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2879 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2880 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2881 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2882 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2883main_body: 2884 %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) 2885 ret <4 x float> %v 2886} 2887 2888define amdgpu_ps <4 x float> @sample_lz_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s) { 2889 ; GFX9-LABEL: name: sample_lz_1d 2890 ; GFX9: bb.1.main_body: 2891 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0 2892 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2893 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2894 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2895 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2896 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2897 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2898 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2899 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2900 ; GFX9: [[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) 2901 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2902 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2903 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2904 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2905 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2906 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2907 ; GFX9: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32) 2908 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[TRUNC]](s16), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2909 ; GFX9: [[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>) 2910 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2911 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2912 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2913 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2914 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2915 ; GFX10-LABEL: name: sample_lz_1d 2916 ; GFX10: bb.1.main_body: 2917 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0 2918 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2919 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2920 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2921 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2922 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2923 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2924 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2925 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2926 ; GFX10: [[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) 2927 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2928 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2929 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2930 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2931 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2932 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2933 ; GFX10: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY12]](s32) 2934 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.1d), 15, [[TRUNC]](s16), [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2935 ; GFX10: [[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>) 2936 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2937 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2938 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2939 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 2940 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2941main_body: 2942 %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) 2943 ret <4 x float> %v 2944} 2945 2946define amdgpu_ps <4 x float> @sample_lz_2d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, half %s, half %t) { 2947 ; GFX9-LABEL: name: sample_lz_2d 2948 ; GFX9: bb.1.main_body: 2949 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 2950 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2951 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2952 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2953 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2954 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2955 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2956 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2957 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2958 ; GFX9: [[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) 2959 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2960 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2961 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2962 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2963 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2964 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2965 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2966 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2967 ; GFX9: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2968 ; GFX9: [[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>) 2969 ; GFX9: $vgpr0 = COPY [[UV]](s32) 2970 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 2971 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 2972 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 2973 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 2974 ; GFX10-LABEL: name: sample_lz_2d 2975 ; GFX10: bb.1.main_body: 2976 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 2977 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 2978 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 2979 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 2980 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 2981 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 2982 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 2983 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 2984 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 2985 ; GFX10: [[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) 2986 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 2987 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 2988 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 2989 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 2990 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 2991 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 2992 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 2993 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY12]](s32), [[COPY13]](s32) 2994 ; GFX10: [[AMDGPU_INTRIN_IMAGE_LOAD:%[0-9]+]]:_(<4 x s32>) = G_AMDGPU_INTRIN_IMAGE_LOAD intrinsic(@llvm.amdgcn.image.sample.lz.2d), 15, [[BUILD_VECTOR_TRUNC]](<2 x s16>), $noreg, [[BUILD_VECTOR]](<8 x s32>), [[BUILD_VECTOR1]](<4 x s32>), 0, 0, 0, 3 :: (dereferenceable load (<4 x s32>) from custom "ImageResource") 2995 ; GFX10: [[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>) 2996 ; GFX10: $vgpr0 = COPY [[UV]](s32) 2997 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 2998 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 2999 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 3000 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 3001main_body: 3002 %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) 3003 ret <4 x float> %v 3004} 3005 3006define amdgpu_ps <4 x float> @sample_c_lz_1d(<8 x i32> inreg %rsrc, <4 x i32> inreg %samp, float %zcompare, half %s) { 3007 ; GFX9-LABEL: name: sample_c_lz_1d 3008 ; GFX9: bb.1.main_body: 3009 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 3010 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3011 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3012 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3013 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3014 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3015 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3016 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3017 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3018 ; GFX9: [[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) 3019 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3020 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3021 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3022 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3023 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3024 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3025 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3026 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3027 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3028 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 3029 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 3030 ; GFX9: [[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>) from custom "ImageResource") 3031 ; GFX9: [[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>) 3032 ; GFX9: $vgpr0 = COPY [[UV]](s32) 3033 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 3034 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 3035 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 3036 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 3037 ; GFX10-LABEL: name: sample_c_lz_1d 3038 ; GFX10: bb.1.main_body: 3039 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1 3040 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3041 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3042 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3043 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3044 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3045 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3046 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3047 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3048 ; GFX10: [[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) 3049 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3050 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3051 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3052 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3053 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3054 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3055 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3056 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3057 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3058 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[DEF]](s32) 3059 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 3060 ; GFX10: [[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>) from custom "ImageResource") 3061 ; GFX10: [[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 ; GFX10: $vgpr0 = COPY [[UV]](s32) 3063 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 3064 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 3065 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 3066 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 3067main_body: 3068 %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) 3069 ret <4 x float> %v 3070} 3071 3072define 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) { 3073 ; GFX9-LABEL: name: sample_c_lz_2d 3074 ; GFX9: bb.1.main_body: 3075 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 3076 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3077 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3078 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3079 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3080 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3081 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3082 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3083 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3084 ; GFX9: [[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) 3085 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3086 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3087 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3088 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3089 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3090 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3091 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3092 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3093 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3094 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 3095 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 3096 ; GFX9: [[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>) from custom "ImageResource") 3097 ; GFX9: [[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>) 3098 ; GFX9: $vgpr0 = COPY [[UV]](s32) 3099 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 3100 ; GFX9: $vgpr2 = COPY [[UV2]](s32) 3101 ; GFX9: $vgpr3 = COPY [[UV3]](s32) 3102 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 3103 ; GFX10-LABEL: name: sample_c_lz_2d 3104 ; GFX10: bb.1.main_body: 3105 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2 3106 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3107 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3108 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3109 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3110 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3111 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3112 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3113 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3114 ; GFX10: [[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) 3115 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3116 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3117 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3118 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3119 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3120 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3121 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3122 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3123 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3124 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY13]](s32), [[COPY14]](s32) 3125 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>) 3126 ; GFX10: [[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>) from custom "ImageResource") 3127 ; GFX10: [[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>) 3128 ; GFX10: $vgpr0 = COPY [[UV]](s32) 3129 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 3130 ; GFX10: $vgpr2 = COPY [[UV2]](s32) 3131 ; GFX10: $vgpr3 = COPY [[UV3]](s32) 3132 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 3133main_body: 3134 %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) 3135 ret <4 x float> %v 3136} 3137 3138define 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) { 3139 ; GFX9-LABEL: name: sample_c_d_o_2darray_V1 3140 ; GFX9: bb.1.main_body: 3141 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 3142 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3143 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3144 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3145 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3146 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3147 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3148 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3149 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3150 ; GFX9: [[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) 3151 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3152 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3153 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3154 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3155 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3156 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3157 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3158 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3159 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 3160 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 3161 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 3162 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 3163 ; GFX9: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 3164 ; GFX9: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 3165 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3166 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 3167 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 3168 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 3169 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 3170 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3171 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 3172 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 3173 ; GFX9: [[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) from custom "ImageResource") 3174 ; GFX9: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32) 3175 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0 3176 ; GFX10-LABEL: name: sample_c_d_o_2darray_V1 3177 ; GFX10: bb.1.main_body: 3178 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 3179 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3180 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3181 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3182 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3183 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3184 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3185 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3186 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3187 ; GFX10: [[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) 3188 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3189 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3190 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3191 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3192 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3193 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3194 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3195 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3196 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 3197 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 3198 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 3199 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 3200 ; GFX10: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 3201 ; GFX10: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 3202 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3203 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 3204 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 3205 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 3206 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 3207 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3208 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 3209 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 3210 ; GFX10: [[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) from custom "ImageResource") 3211 ; GFX10: $vgpr0 = COPY [[AMDGPU_INTRIN_IMAGE_LOAD]](s32) 3212 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0 3213main_body: 3214 %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) 3215 ret float %v 3216} 3217 3218define 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) { 3219 ; GFX9-LABEL: name: sample_c_d_o_2darray_V2 3220 ; GFX9: bb.1.main_body: 3221 ; GFX9: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 3222 ; GFX9: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3223 ; GFX9: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3224 ; GFX9: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3225 ; GFX9: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3226 ; GFX9: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3227 ; GFX9: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3228 ; GFX9: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3229 ; GFX9: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3230 ; GFX9: [[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) 3231 ; GFX9: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3232 ; GFX9: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3233 ; GFX9: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3234 ; GFX9: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3235 ; GFX9: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3236 ; GFX9: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3237 ; GFX9: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3238 ; GFX9: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3239 ; GFX9: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 3240 ; GFX9: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 3241 ; GFX9: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 3242 ; GFX9: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 3243 ; GFX9: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 3244 ; GFX9: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 3245 ; GFX9: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3246 ; GFX9: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 3247 ; GFX9: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 3248 ; GFX9: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 3249 ; GFX9: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 3250 ; GFX9: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3251 ; GFX9: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 3252 ; GFX9: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 3253 ; GFX9: [[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>) from custom "ImageResource") 3254 ; GFX9: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>) 3255 ; GFX9: $vgpr0 = COPY [[UV]](s32) 3256 ; GFX9: $vgpr1 = COPY [[UV1]](s32) 3257 ; GFX9: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 3258 ; GFX10-LABEL: name: sample_c_d_o_2darray_V2 3259 ; GFX10: bb.1.main_body: 3260 ; GFX10: liveins: $sgpr2, $sgpr3, $sgpr4, $sgpr5, $sgpr6, $sgpr7, $sgpr8, $sgpr9, $sgpr10, $sgpr11, $sgpr12, $sgpr13, $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8 3261 ; GFX10: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr2 3262 ; GFX10: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr3 3263 ; GFX10: [[COPY2:%[0-9]+]]:_(s32) = COPY $sgpr4 3264 ; GFX10: [[COPY3:%[0-9]+]]:_(s32) = COPY $sgpr5 3265 ; GFX10: [[COPY4:%[0-9]+]]:_(s32) = COPY $sgpr6 3266 ; GFX10: [[COPY5:%[0-9]+]]:_(s32) = COPY $sgpr7 3267 ; GFX10: [[COPY6:%[0-9]+]]:_(s32) = COPY $sgpr8 3268 ; GFX10: [[COPY7:%[0-9]+]]:_(s32) = COPY $sgpr9 3269 ; GFX10: [[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) 3270 ; GFX10: [[COPY8:%[0-9]+]]:_(s32) = COPY $sgpr10 3271 ; GFX10: [[COPY9:%[0-9]+]]:_(s32) = COPY $sgpr11 3272 ; GFX10: [[COPY10:%[0-9]+]]:_(s32) = COPY $sgpr12 3273 ; GFX10: [[COPY11:%[0-9]+]]:_(s32) = COPY $sgpr13 3274 ; GFX10: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32) 3275 ; GFX10: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr0 3276 ; GFX10: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr1 3277 ; GFX10: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr2 3278 ; GFX10: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr3 3279 ; GFX10: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr4 3280 ; GFX10: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr5 3281 ; GFX10: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr6 3282 ; GFX10: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr7 3283 ; GFX10: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr8 3284 ; GFX10: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY12]](s32) 3285 ; GFX10: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[COPY13]](s32) 3286 ; GFX10: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY14]](s32), [[COPY15]](s32) 3287 ; GFX10: [[BUILD_VECTOR_TRUNC1:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY16]](s32), [[COPY17]](s32) 3288 ; GFX10: [[BUILD_VECTOR_TRUNC2:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY18]](s32), [[COPY19]](s32) 3289 ; GFX10: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF 3290 ; GFX10: [[BUILD_VECTOR_TRUNC3:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[COPY20]](s32), [[DEF]](s32) 3291 ; GFX10: [[CONCAT_VECTORS:%[0-9]+]]:_(<12 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BUILD_VECTOR_TRUNC]](<2 x s16>), [[BUILD_VECTOR_TRUNC1]](<2 x s16>), [[BUILD_VECTOR_TRUNC2]](<2 x s16>), [[BUILD_VECTOR_TRUNC3]](<2 x s16>) 3292 ; GFX10: [[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>) from custom "ImageResource") 3293 ; GFX10: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AMDGPU_INTRIN_IMAGE_LOAD]](<2 x s32>) 3294 ; GFX10: $vgpr0 = COPY [[UV]](s32) 3295 ; GFX10: $vgpr1 = COPY [[UV1]](s32) 3296 ; GFX10: SI_RETURN_TO_EPILOG implicit $vgpr0, implicit $vgpr1 3297main_body: 3298 %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) 3299 ret <2 x float> %v 3300} 3301 3302declare <4 x float> @llvm.amdgcn.image.sample.1d.v4f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3303declare <8 x float> @llvm.amdgcn.image.sample.1d.v8f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3304declare <4 x float> @llvm.amdgcn.image.sample.2d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3305declare <4 x float> @llvm.amdgcn.image.sample.3d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3306declare <4 x float> @llvm.amdgcn.image.sample.cube.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3307declare <4 x float> @llvm.amdgcn.image.sample.1darray.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3308declare <4 x float> @llvm.amdgcn.image.sample.2darray.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3309 3310declare <4 x float> @llvm.amdgcn.image.sample.c.1d.v4f32.f16(i32, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3311declare <4 x float> @llvm.amdgcn.image.sample.c.2d.v4f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3312declare <4 x float> @llvm.amdgcn.image.sample.cl.1d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3313declare <4 x float> @llvm.amdgcn.image.sample.cl.2d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3314declare <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) #1 3315declare <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) #1 3316 3317declare <4 x float> @llvm.amdgcn.image.sample.b.1d.v4f32.f32.f16(i32, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3318declare <4 x float> @llvm.amdgcn.image.sample.b.2d.v4f32.f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3319declare <4 x float> @llvm.amdgcn.image.sample.c.b.1d.v4f32.f32.f16(i32, float, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3320declare <4 x float> @llvm.amdgcn.image.sample.c.b.2d.v4f32.f32.f16(i32, float, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3321declare <4 x float> @llvm.amdgcn.image.sample.b.cl.1d.v4f32.f32.f16(i32, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3322declare <4 x float> @llvm.amdgcn.image.sample.b.cl.2d.v4f32.f32.f16(i32, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3323declare <4 x float> @llvm.amdgcn.image.sample.c.b.cl.1d.v4f32.f32.f16(i32, float, float, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3324declare <4 x float> @llvm.amdgcn.image.sample.c.b.cl.2d.v4f32.f32.f16(i32, float, float, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3325 3326declare <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) #1 3327declare <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) #1 3328declare <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) #1 3329declare <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) #1 3330declare <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) #1 3331declare <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) #1 3332declare <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) #1 3333declare <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) #1 3334declare <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) #1 3335 3336declare <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) #1 3337declare <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) #1 3338declare <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) #1 3339declare <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) #1 3340declare <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) #1 3341declare <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) #1 3342declare <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) #1 3343declare <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) #1 3344 3345declare <4 x float> @llvm.amdgcn.image.sample.l.1d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3346declare <4 x float> @llvm.amdgcn.image.sample.l.2d.v4f32.f16(i32, half, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3347declare <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) #1 3348declare <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) #1 3349 3350declare <4 x float> @llvm.amdgcn.image.sample.lz.1d.v4f32.f16(i32, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3351declare <4 x float> @llvm.amdgcn.image.sample.lz.2d.v4f32.f16(i32, half, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3352declare <4 x float> @llvm.amdgcn.image.sample.c.lz.1d.v4f32.f16(i32, float, half, <8 x i32>, <4 x i32>, i1, i32, i32) #1 3353declare <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) #1 3354 3355declare 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) #1 3356declare <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) #1 3357 3358attributes #0 = { nounwind } 3359attributes #1 = { nounwind readonly } 3360attributes #2 = { nounwind readnone } 3361