1# RUN: llc -march=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass si-load-store-opt -o - %s | FileCheck -check-prefix=GFX9 %s 2 3# GFX9-LABEL: name: image_sample_l_merged_v1v3 4# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 5# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 6# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 7 8name: image_sample_l_merged_v1v3 9body: | 10 bb.0.entry: 11 %0:sgpr_64 = COPY $sgpr0_sgpr1 12 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 13 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 14 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 15 %4:vgpr_32 = COPY %2.sub3 16 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 17 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 18 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 19... 20--- 21 22# GFX9-LABEL: name: image_sample_l_merged_v1v3_reversed 23# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4) 24# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub3 25# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub0_sub1_sub2 26 27name: image_sample_l_merged_v1v3_reversed 28body: | 29 bb.0.entry: 30 %0:sgpr_64 = COPY $sgpr0_sgpr1 31 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 32 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 33 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 34 %4:vgpr_32 = COPY %2.sub3 35 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 36 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 37 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 38... 39--- 40 41# GFX9-LABEL: name: image_sample_l_merged_v2v2 42# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4) 43# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub0_sub1 44# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub2_sub3 45 46name: image_sample_l_merged_v2v2 47body: | 48 bb.0.entry: 49 %0:sgpr_64 = COPY $sgpr0_sgpr1 50 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 51 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 52 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 53 %4:vgpr_32 = COPY %2.sub3 54 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 55 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4) 56 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4) 57... 58--- 59 60# GFX9-LABEL: name: image_sample_l_merged_v2v2_reversed 61# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4) 62# GFX9: %{{[0-9]+}}:vreg_64 = COPY %8.sub2_sub3 63# GFX9: %{{[0-9]+}}:vreg_64 = COPY killed %8.sub0_sub1 64 65name: image_sample_l_merged_v2v2_reversed 66body: | 67 bb.0.entry: 68 %0:sgpr_64 = COPY $sgpr0_sgpr1 69 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 70 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 71 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 72 %4:vgpr_32 = COPY %2.sub3 73 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 74 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 12, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4) 75 %7:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 3, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), align 16, addrspace 4) 76... 77--- 78 79# GFX9-LABEL: name: image_sample_l_merged_v3v1 80# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4) 81# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub0_sub1_sub2 82# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub3 83 84name: image_sample_l_merged_v3v1 85body: | 86 bb.0.entry: 87 %0:sgpr_64 = COPY $sgpr0_sgpr1 88 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 89 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 90 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 91 %4:vgpr_32 = COPY %2.sub3 92 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 93 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 94 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 95... 96--- 97 98# GFX9-LABEL: name: image_sample_l_merged_v3v1_reversed 99# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 100# GFX9: %{{[0-9]+}}:vreg_96 = COPY %8.sub1_sub2_sub3 101# GFX9: %{{[0-9]+}}:vgpr_32 = COPY killed %8.sub0 102 103name: image_sample_l_merged_v3v1_reversed 104body: | 105 bb.0.entry: 106 %0:sgpr_64 = COPY $sgpr0_sgpr1 107 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 108 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 109 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 110 %4:vgpr_32 = COPY %2.sub3 111 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 112 %6:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 113 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 114... 115--- 116 117# GFX9-LABEL: name: image_sample_l_divided_merged 118# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), addrspace 4) 119 120name: image_sample_l_divided_merged 121body: | 122 bb.0.entry: 123 %0:sgpr_64 = COPY $sgpr0_sgpr1 124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 127 %4:vgpr_32 = COPY %2.sub3 128 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 129 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 130 %7:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 131 %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 132 %9:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %7:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 133 %10:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 134 %11:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 135... 136--- 137 138# GFX9-LABEL: name: image_sample_l_divided_not_merged 139# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 140# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 141 142name: image_sample_l_divided_not_merged 143body: | 144 bb.0.entry: 145 %0:sgpr_64 = COPY $sgpr0_sgpr1 146 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 147 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 148 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 149 %4:vreg_128 = COPY %2 150 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 151 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 152 IMAGE_STORE_V4_V4 %4:vreg_128, %5:vreg_128, %3:sgpr_256, 15, -1, 0, 0, 0, 0, 0, 0, implicit $exec :: (store (s128)) 153 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 154... 155--- 156 157# GFX9-LABEL: name: image_sample_l_dmask_overlapped_not_merged 158# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 159# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 160 161name: image_sample_l_dmask_overlapped_not_merged 162body: | 163 bb.0.entry: 164 %0:sgpr_64 = COPY $sgpr0_sgpr1 165 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 166 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 167 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 168 %4:vgpr_32 = COPY %2.sub3 169 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 170 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 171 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 172... 173--- 174 175# GFX9-LABEL: name: image_sample_l_dmask_not_disjoint_not_merged 176# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 177# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 11, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 178 179name: image_sample_l_dmask_not_disjoint_not_merged 180body: | 181 bb.0.entry: 182 %0:sgpr_64 = COPY $sgpr0_sgpr1 183 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 184 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 185 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 186 %4:vgpr_32 = COPY %2.sub3 187 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 188 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 4, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 189 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 11, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 190... 191--- 192 193# GFX9-LABEL: name: image_sample_l_not_merged_0 194# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 195# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 196 197name: image_sample_l_not_merged_0 198body: | 199 bb.0.entry: 200 %0:sgpr_64 = COPY $sgpr0_sgpr1 201 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 202 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 203 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 204 %4:vgpr_32 = COPY %2.sub3 205 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 206 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 207 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 208 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 209... 210--- 211 212# GFX9-LABEL: name: image_sample_l_not_merged_1 213# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 214# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 215 216name: image_sample_l_not_merged_1 217body: | 218 bb.0.entry: 219 %0:sgpr_64 = COPY $sgpr0_sgpr1 220 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 221 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 222 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 223 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 224 %5:vgpr_32 = COPY %2.sub3 225 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 226 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 227 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 228... 229--- 230 231# GFX9-LABEL: name: image_sample_l_not_merged_2 232# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 233# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 234 235name: image_sample_l_not_merged_2 236body: | 237 bb.0.entry: 238 %0:sgpr_64 = COPY $sgpr0_sgpr1 239 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 240 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 241 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95 242 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 243 %5:vgpr_32 = COPY %2.sub3 244 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 245 %7:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %6, %4, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 246 %8:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %6, %4, %3, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 247... 248--- 249 250# GFX9-LABEL: name: image_sample_l_not_merged_3 251# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 252# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 253 254name: image_sample_l_not_merged_3 255body: | 256 bb.0.entry: 257 %0:sgpr_64 = COPY $sgpr0_sgpr1 258 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 259 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 260 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 261 %4:vgpr_32 = COPY %2.sub3 262 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 263 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 264 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 265... 266--- 267 268# GFX9-LABEL: name: image_sample_l_not_merged_4 269# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 270# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 271 272name: image_sample_l_not_merged_4 273body: | 274 bb.0.entry: 275 %0:sgpr_64 = COPY $sgpr0_sgpr1 276 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 277 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 278 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 279 %4:vgpr_32 = COPY %2.sub3 280 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 281 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 282 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 283... 284--- 285 286# GFX9-LABEL: name: image_sample_l_not_merged_5 287# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 288# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 289 290name: image_sample_l_not_merged_5 291body: | 292 bb.0.entry: 293 %0:sgpr_64 = COPY $sgpr0_sgpr1 294 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 295 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 296 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 297 %4:vgpr_32 = COPY %2.sub3 298 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 299 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 300 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 301... 302--- 303 304# GFX9-LABEL: name: image_sample_l_not_merged_6 305# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 306# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 307 308name: image_sample_l_not_merged_6 309body: | 310 bb.0.entry: 311 %0:sgpr_64 = COPY $sgpr0_sgpr1 312 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 313 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 314 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 315 %4:vgpr_32 = COPY %2.sub3 316 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 317 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 318 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 319... 320--- 321 322# GFX9-LABEL: name: image_sample_l_not_merged_7 323# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4) 324# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 325 326name: image_sample_l_not_merged_7 327body: | 328 bb.0.entry: 329 %0:sgpr_64 = COPY $sgpr0_sgpr1 330 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 331 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 332 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 333 %4:vgpr_32 = COPY %2.sub3 334 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 335 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 1, 0, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4) 336 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 337... 338--- 339 340# GFX9-LABEL: name: image_sample_l_not_merged_8 341# GFX9: %{{[0-9]+}}:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4) 342# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 343 344name: image_sample_l_not_merged_8 345body: | 346 bb.0.entry: 347 %0:sgpr_64 = COPY $sgpr0_sgpr1 348 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 349 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 350 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 351 %4:vgpr_32 = COPY %2.sub3 352 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 353 %6:vreg_64 = IMAGE_SAMPLE_L_V2_V4 %5, %3, %2, 8, 0, 0, 0, 0, 1, -1, 0, implicit $exec :: (dereferenceable load (s64), addrspace 4) 354 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 355... 356--- 357 358# GFX9-LABEL: name: image_sample_l_not_merged_9 359# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 360# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 361 362name: image_sample_l_not_merged_9 363body: | 364 bb.0.entry: 365 %0:sgpr_64 = COPY $sgpr0_sgpr1 366 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 367 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 368 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 369 %4:vgpr_32 = COPY %2.sub3 370 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 371 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 372 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 373... 374--- 375 376# GFX9-LABEL: name: image_sample_l_not_merged_10 377# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 378# GFX9: %{{[0-9]+}}:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 379 380name: image_sample_l_not_merged_10 381body: | 382 bb.0.entry: 383 %0:sgpr_64 = COPY $sgpr0_sgpr1 384 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 385 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 386 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 387 %4:vgpr_32 = COPY %2.sub3 388 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 389 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 8, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 390 %7:vreg_96 = IMAGE_SAMPLE_L_V3_V4 %5, %3, %2, 7, 0, 0, 0, 0, 0, -1, 1, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 391... 392--- 393 394# GFX9-LABEL: name: image_sample_merged_v1v3 395# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 396# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 397# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 398 399name: image_sample_merged_v1v3 400body: | 401 bb.0.entry: 402 %0:sgpr_64 = COPY $sgpr0_sgpr1 403 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 404 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 405 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 406 %4:vgpr_32 = COPY %2.sub3 407 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 408 %6:vgpr_32 = IMAGE_SAMPLE_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 409 %7:vreg_96 = IMAGE_SAMPLE_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 410... 411--- 412 413# GFX9-LABEL: name: image_sample_b_merged_v1v3 414# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 415# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 416# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 417 418name: image_sample_b_merged_v1v3 419body: | 420 bb.0.entry: 421 %0:sgpr_64 = COPY $sgpr0_sgpr1 422 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 423 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 424 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 425 %4:vgpr_32 = COPY %2.sub3 426 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 427 %6:vgpr_32 = IMAGE_SAMPLE_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 428 %7:vreg_96 = IMAGE_SAMPLE_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 429... 430--- 431 432# GFX9-LABEL: name: image_sample_b_cl_merged_v1v3 433# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 434# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 435# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 436 437name: image_sample_b_cl_merged_v1v3 438body: | 439 bb.0.entry: 440 %0:sgpr_64 = COPY $sgpr0_sgpr1 441 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 442 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 443 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 444 %4:vgpr_32 = COPY %2.sub3 445 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 446 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 447 %7:vreg_96 = IMAGE_SAMPLE_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 448... 449--- 450 451# GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3 452# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 453# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 454# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 455 456name: image_sample_b_cl_o_merged_v1v3 457body: | 458 bb.0.entry: 459 %0:sgpr_64 = COPY $sgpr0_sgpr1 460 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 461 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 462 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 463 %4:vgpr_32 = COPY %2.sub3 464 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 465 %6:vgpr_32 = IMAGE_SAMPLE_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 466 %7:vreg_96 = IMAGE_SAMPLE_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 467... 468--- 469 470# GFX9-LABEL: name: image_sample_b_o_merged_v1v3 471# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 472# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 473# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 474 475name: image_sample_b_o_merged_v1v3 476body: | 477 bb.0.entry: 478 %0:sgpr_64 = COPY $sgpr0_sgpr1 479 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 480 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 481 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 482 %4:vgpr_32 = COPY %2.sub3 483 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 484 %6:vgpr_32 = IMAGE_SAMPLE_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 485 %7:vreg_96 = IMAGE_SAMPLE_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 486... 487--- 488 489# GFX9-LABEL: name: image_sample_c_merged_v1v3 490# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 491# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 492# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 493 494name: image_sample_c_merged_v1v3 495body: | 496 bb.0.entry: 497 %0:sgpr_64 = COPY $sgpr0_sgpr1 498 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 499 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 500 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 501 %4:vgpr_32 = COPY %2.sub3 502 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 503 %6:vgpr_32 = IMAGE_SAMPLE_C_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 504 %7:vreg_96 = IMAGE_SAMPLE_C_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 505... 506--- 507 508# GFX9-LABEL: name: image_sample_cd_merged_v1v3 509# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 510# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 511# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 512 513name: image_sample_cd_merged_v1v3 514body: | 515 bb.0.entry: 516 %0:sgpr_64 = COPY $sgpr0_sgpr1 517 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 518 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 519 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 520 %4:vgpr_32 = COPY %2.sub3 521 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 522 %6:vgpr_32 = IMAGE_SAMPLE_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 523 %7:vreg_96 = IMAGE_SAMPLE_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 524... 525--- 526 527# GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3 528# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 529# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 530# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 531 532name: image_sample_cd_cl_merged_v1v3 533body: | 534 bb.0.entry: 535 %0:sgpr_64 = COPY $sgpr0_sgpr1 536 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 537 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 538 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 539 %4:vgpr_32 = COPY %2.sub3 540 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 541 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 542 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 543... 544--- 545 546# GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3 547# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 548# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 549# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 550 551name: image_sample_cd_cl_o_merged_v1v3 552body: | 553 bb.0.entry: 554 %0:sgpr_64 = COPY $sgpr0_sgpr1 555 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 556 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 557 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 558 %4:vgpr_32 = COPY %2.sub3 559 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 560 %6:vgpr_32 = IMAGE_SAMPLE_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 561 %7:vreg_96 = IMAGE_SAMPLE_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 562... 563--- 564 565# GFX9-LABEL: name: image_sample_cd_o_merged_v1v3 566# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 567# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 568# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 569 570name: image_sample_cd_o_merged_v1v3 571body: | 572 bb.0.entry: 573 %0:sgpr_64 = COPY $sgpr0_sgpr1 574 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 575 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 576 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 577 %4:vgpr_32 = COPY %2.sub3 578 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 579 %6:vgpr_32 = IMAGE_SAMPLE_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 580 %7:vreg_96 = IMAGE_SAMPLE_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 581... 582--- 583 584# GFX9-LABEL: name: image_sample_cl_merged_v1v3 585# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 586# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 587# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 588 589name: image_sample_cl_merged_v1v3 590body: | 591 bb.0.entry: 592 %0:sgpr_64 = COPY $sgpr0_sgpr1 593 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 594 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 595 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 596 %4:vgpr_32 = COPY %2.sub3 597 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 598 %6:vgpr_32 = IMAGE_SAMPLE_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 599 %7:vreg_96 = IMAGE_SAMPLE_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 600... 601--- 602 603# GFX9-LABEL: name: image_sample_cl_o_merged_v1v3 604# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 605# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 606# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 607 608name: image_sample_cl_o_merged_v1v3 609body: | 610 bb.0.entry: 611 %0:sgpr_64 = COPY $sgpr0_sgpr1 612 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 613 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 614 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 615 %4:vgpr_32 = COPY %2.sub3 616 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 617 %6:vgpr_32 = IMAGE_SAMPLE_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 618 %7:vreg_96 = IMAGE_SAMPLE_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 619... 620--- 621 622# GFX9-LABEL: name: image_sample_c_b_merged_v1v3 623# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 624# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 625# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 626 627name: image_sample_c_b_merged_v1v3 628body: | 629 bb.0.entry: 630 %0:sgpr_64 = COPY $sgpr0_sgpr1 631 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 632 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 633 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 634 %4:vgpr_32 = COPY %2.sub3 635 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 636 %6:vgpr_32 = IMAGE_SAMPLE_C_B_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 637 %7:vreg_96 = IMAGE_SAMPLE_C_B_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 638... 639--- 640 641# GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3 642# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 643# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 644# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 645 646name: image_sample_c_b_cl_merged_v1v3 647body: | 648 bb.0.entry: 649 %0:sgpr_64 = COPY $sgpr0_sgpr1 650 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 651 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 652 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 653 %4:vgpr_32 = COPY %2.sub3 654 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 655 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 656 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 657... 658--- 659 660# GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3 661# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 662# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 663# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 664 665name: image_sample_c_b_cl_o_merged_v1v3 666body: | 667 bb.0.entry: 668 %0:sgpr_64 = COPY $sgpr0_sgpr1 669 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 670 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 671 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 672 %4:vgpr_32 = COPY %2.sub3 673 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 674 %6:vgpr_32 = IMAGE_SAMPLE_C_B_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 675 %7:vreg_96 = IMAGE_SAMPLE_C_B_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 676... 677--- 678 679# GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3 680# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_B_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 681# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 682# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 683 684name: image_sample_c_b_o_merged_v1v3 685body: | 686 bb.0.entry: 687 %0:sgpr_64 = COPY $sgpr0_sgpr1 688 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 689 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 690 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 691 %4:vgpr_32 = COPY %2.sub3 692 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 693 %6:vgpr_32 = IMAGE_SAMPLE_C_B_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 694 %7:vreg_96 = IMAGE_SAMPLE_C_B_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 695... 696--- 697 698# GFX9-LABEL: name: image_sample_c_cd_merged_v1v3 699# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 700# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 701# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 702 703name: image_sample_c_cd_merged_v1v3 704body: | 705 bb.0.entry: 706 %0:sgpr_64 = COPY $sgpr0_sgpr1 707 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 708 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 709 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 710 %4:vgpr_32 = COPY %2.sub3 711 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 712 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 713 %7:vreg_96 = IMAGE_SAMPLE_C_CD_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 714... 715--- 716 717# GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3 718# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 719# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 720# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 721 722name: image_sample_c_cd_cl_merged_v1v3 723body: | 724 bb.0.entry: 725 %0:sgpr_64 = COPY $sgpr0_sgpr1 726 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 727 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 728 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 729 %4:vgpr_32 = COPY %2.sub3 730 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 731 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 732 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 733... 734--- 735 736# GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3 737# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 738# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 739# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 740 741name: image_sample_c_cd_cl_o_merged_v1v3 742body: | 743 bb.0.entry: 744 %0:sgpr_64 = COPY $sgpr0_sgpr1 745 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 746 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 747 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 748 %4:vgpr_32 = COPY %2.sub3 749 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 750 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 751 %7:vreg_96 = IMAGE_SAMPLE_C_CD_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 752... 753--- 754 755# GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3 756# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CD_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 757# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 758# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 759 760name: image_sample_c_cd_o_merged_v1v3 761body: | 762 bb.0.entry: 763 %0:sgpr_64 = COPY $sgpr0_sgpr1 764 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 765 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 766 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 767 %4:vgpr_32 = COPY %2.sub3 768 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 769 %6:vgpr_32 = IMAGE_SAMPLE_C_CD_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 770 %7:vreg_96 = IMAGE_SAMPLE_C_CD_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 771... 772--- 773 774# GFX9-LABEL: name: image_sample_c_cl_merged_v1v3 775# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 776# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 777# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 778 779name: image_sample_c_cl_merged_v1v3 780body: | 781 bb.0.entry: 782 %0:sgpr_64 = COPY $sgpr0_sgpr1 783 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 784 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 785 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 786 %4:vgpr_32 = COPY %2.sub3 787 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 788 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 789 %7:vreg_96 = IMAGE_SAMPLE_C_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 790... 791--- 792 793# GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3 794# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 795# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 796# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 797 798name: image_sample_c_cl_o_merged_v1v3 799body: | 800 bb.0.entry: 801 %0:sgpr_64 = COPY $sgpr0_sgpr1 802 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 803 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 804 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 805 %4:vgpr_32 = COPY %2.sub3 806 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 807 %6:vgpr_32 = IMAGE_SAMPLE_C_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 808 %7:vreg_96 = IMAGE_SAMPLE_C_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 809... 810--- 811 812# GFX9-LABEL: name: image_sample_c_d_merged_v1v3 813# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 814# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 815# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 816 817name: image_sample_c_d_merged_v1v3 818body: | 819 bb.0.entry: 820 %0:sgpr_64 = COPY $sgpr0_sgpr1 821 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 822 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 823 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 824 %4:vgpr_32 = COPY %2.sub3 825 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 826 %6:vgpr_32 = IMAGE_SAMPLE_C_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 827 %7:vreg_96 = IMAGE_SAMPLE_C_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 828... 829--- 830 831# GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3 832# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 833# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 834# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 835 836name: image_sample_c_d_cl_merged_v1v3 837body: | 838 bb.0.entry: 839 %0:sgpr_64 = COPY $sgpr0_sgpr1 840 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 841 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 842 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 843 %4:vgpr_32 = COPY %2.sub3 844 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 845 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 846 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 847... 848--- 849 850# GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3 851# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 852# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 853# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 854 855name: image_sample_c_d_cl_o_merged_v1v3 856body: | 857 bb.0.entry: 858 %0:sgpr_64 = COPY $sgpr0_sgpr1 859 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 860 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 861 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 862 %4:vgpr_32 = COPY %2.sub3 863 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 864 %6:vgpr_32 = IMAGE_SAMPLE_C_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 865 %7:vreg_96 = IMAGE_SAMPLE_C_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 866... 867--- 868 869# GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3 870# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 871# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 872# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 873 874name: image_sample_c_d_o_merged_v1v3 875body: | 876 bb.0.entry: 877 %0:sgpr_64 = COPY $sgpr0_sgpr1 878 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 879 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 880 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 881 %4:vgpr_32 = COPY %2.sub3 882 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 883 %6:vgpr_32 = IMAGE_SAMPLE_C_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 884 %7:vreg_96 = IMAGE_SAMPLE_C_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 885... 886--- 887 888# GFX9-LABEL: name: image_sample_c_l_merged_v1v3 889# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 890# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 891# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 892 893name: image_sample_c_l_merged_v1v3 894body: | 895 bb.0.entry: 896 %0:sgpr_64 = COPY $sgpr0_sgpr1 897 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 898 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 899 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 900 %4:vgpr_32 = COPY %2.sub3 901 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 902 %6:vgpr_32 = IMAGE_SAMPLE_C_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 903 %7:vreg_96 = IMAGE_SAMPLE_C_L_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 904... 905--- 906 907# GFX9-LABEL: name: image_sample_c_lz_merged_v1v3 908# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 909# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 910# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 911 912name: image_sample_c_lz_merged_v1v3 913body: | 914 bb.0.entry: 915 %0:sgpr_64 = COPY $sgpr0_sgpr1 916 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 917 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 918 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 919 %4:vgpr_32 = COPY %2.sub3 920 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 921 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 922 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 923... 924--- 925 926# GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3 927# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 928# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 929# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 930 931name: image_sample_c_lz_o_merged_v1v3 932body: | 933 bb.0.entry: 934 %0:sgpr_64 = COPY $sgpr0_sgpr1 935 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 936 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 937 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 938 %4:vgpr_32 = COPY %2.sub3 939 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 940 %6:vgpr_32 = IMAGE_SAMPLE_C_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 941 %7:vreg_96 = IMAGE_SAMPLE_C_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 942... 943--- 944 945# GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3 946# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 947# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 948# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 949 950name: image_sample_c_l_o_merged_v1v3 951body: | 952 bb.0.entry: 953 %0:sgpr_64 = COPY $sgpr0_sgpr1 954 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 955 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 956 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 957 %4:vgpr_32 = COPY %2.sub3 958 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 959 %6:vgpr_32 = IMAGE_SAMPLE_C_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 960 %7:vreg_96 = IMAGE_SAMPLE_C_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 961... 962--- 963 964# GFX9-LABEL: name: image_sample_c_o_merged_v1v3 965# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_C_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 966# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 967# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 968 969name: image_sample_c_o_merged_v1v3 970body: | 971 bb.0.entry: 972 %0:sgpr_64 = COPY $sgpr0_sgpr1 973 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 974 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 975 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 976 %4:vgpr_32 = COPY %2.sub3 977 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 978 %6:vgpr_32 = IMAGE_SAMPLE_C_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 979 %7:vreg_96 = IMAGE_SAMPLE_C_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 980... 981--- 982 983# GFX9-LABEL: name: image_sample_d_merged_v1v3 984# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 985# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 986# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 987 988name: image_sample_d_merged_v1v3 989body: | 990 bb.0.entry: 991 %0:sgpr_64 = COPY $sgpr0_sgpr1 992 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 993 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 994 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 995 %4:vgpr_32 = COPY %2.sub3 996 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 997 %6:vgpr_32 = IMAGE_SAMPLE_D_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 998 %7:vreg_96 = IMAGE_SAMPLE_D_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 999... 1000--- 1001 1002# GFX9-LABEL: name: image_sample_d_cl_merged_v1v3 1003# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1004# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1005# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1006 1007name: image_sample_d_cl_merged_v1v3 1008body: | 1009 bb.0.entry: 1010 %0:sgpr_64 = COPY $sgpr0_sgpr1 1011 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1012 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1013 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1014 %4:vgpr_32 = COPY %2.sub3 1015 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1016 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1017 %7:vreg_96 = IMAGE_SAMPLE_D_CL_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1018... 1019--- 1020 1021# GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v3 1022# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_CL_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1023# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1024# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1025 1026name: image_sample_d_cl_o_merged_v1v3 1027body: | 1028 bb.0.entry: 1029 %0:sgpr_64 = COPY $sgpr0_sgpr1 1030 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1031 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1032 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1033 %4:vgpr_32 = COPY %2.sub3 1034 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1035 %6:vgpr_32 = IMAGE_SAMPLE_D_CL_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1036 %7:vreg_96 = IMAGE_SAMPLE_D_CL_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1037... 1038--- 1039 1040# GFX9-LABEL: name: image_sample_d_o_merged_v1v3 1041# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_D_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1042# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1043# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1044 1045name: image_sample_d_o_merged_v1v3 1046body: | 1047 bb.0.entry: 1048 %0:sgpr_64 = COPY $sgpr0_sgpr1 1049 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1050 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1051 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1052 %4:vgpr_32 = COPY %2.sub3 1053 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1054 %6:vgpr_32 = IMAGE_SAMPLE_D_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1055 %7:vreg_96 = IMAGE_SAMPLE_D_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1056... 1057--- 1058 1059# GFX9-LABEL: name: image_sample_lz_merged_v1v3 1060# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1061# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1062# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1063 1064name: image_sample_lz_merged_v1v3 1065body: | 1066 bb.0.entry: 1067 %0:sgpr_64 = COPY $sgpr0_sgpr1 1068 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1069 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1070 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1071 %4:vgpr_32 = COPY %2.sub3 1072 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1073 %6:vgpr_32 = IMAGE_SAMPLE_LZ_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1074 %7:vreg_96 = IMAGE_SAMPLE_LZ_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1075... 1076--- 1077 1078# GFX9-LABEL: name: image_sample_lz_o_merged_v1v3 1079# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_LZ_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1080# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1081# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1082 1083name: image_sample_lz_o_merged_v1v3 1084body: | 1085 bb.0.entry: 1086 %0:sgpr_64 = COPY $sgpr0_sgpr1 1087 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1088 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1089 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1090 %4:vgpr_32 = COPY %2.sub3 1091 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1092 %6:vgpr_32 = IMAGE_SAMPLE_LZ_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1093 %7:vreg_96 = IMAGE_SAMPLE_LZ_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1094... 1095--- 1096 1097# GFX9-LABEL: name: image_sample_l_o_merged_v1v3 1098# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_L_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1099# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1100# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1101 1102name: image_sample_l_o_merged_v1v3 1103body: | 1104 bb.0.entry: 1105 %0:sgpr_64 = COPY $sgpr0_sgpr1 1106 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1107 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1108 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1109 %4:vgpr_32 = COPY %2.sub3 1110 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1111 %6:vgpr_32 = IMAGE_SAMPLE_L_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1112 %7:vreg_96 = IMAGE_SAMPLE_L_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1113... 1114--- 1115 1116# GFX9-LABEL: name: image_sample_o_merged_v1v3 1117# GFX9: %{{[0-9]+}}:vreg_128 = IMAGE_SAMPLE_O_V4_V4 %5, %3, %2, 15, 0, 0, 0, 0, 0, -1, 0, implicit $exec, implicit $exec :: (dereferenceable load (s128), align 4, addrspace 4) 1118# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1119# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1120 1121name: image_sample_o_merged_v1v3 1122body: | 1123 bb.0.entry: 1124 %0:sgpr_64 = COPY $sgpr0_sgpr1 1125 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1126 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1127 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1128 %4:vgpr_32 = COPY %2.sub3 1129 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1130 %6:vgpr_32 = IMAGE_SAMPLE_O_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 1, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s32), addrspace 4) 1131 %7:vreg_96 = IMAGE_SAMPLE_O_V3_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 14, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 1132... 1133--- 1134