1# RUN: llc -mtriple=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, 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, 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, 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, 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, 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, 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, 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, implicit $exec :: (dereferenceable invariant load (s128)) 131 %8:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 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, 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, 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, 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_zero_not_merged 176# GFX9: %{{[0-9]+}}:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5, %3, %2, 0, 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, 0, 0, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 178 179name: image_sample_l_dmask_zero_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, implicit $exec :: (dereferenceable invariant load (s128)) 188 %6:vgpr_32 = IMAGE_SAMPLE_L_V1_V4 %5:vreg_128, %3:sgpr_256, %2:sgpr_128, 0, 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, 0, 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_dmask_not_disjoint_not_merged 194# 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) 195# 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) 196 197name: image_sample_l_dmask_not_disjoint_not_merged 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:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 206 %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) 207 %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) 208... 209--- 210 211# GFX9-LABEL: name: image_sample_l_not_merged_0 212# 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) 213# 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) 214 215name: image_sample_l_not_merged_0 216body: | 217 bb.0.entry: 218 %0:sgpr_64 = COPY $sgpr0_sgpr1 219 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 220 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 221 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 222 %4:vgpr_32 = COPY %2.sub3 223 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 224 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 1, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 225 %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) 226 %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) 227... 228--- 229 230# GFX9-LABEL: name: image_sample_l_not_merged_1 231# 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) 232# 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) 233 234name: image_sample_l_not_merged_1 235body: | 236 bb.0.entry: 237 %0:sgpr_64 = COPY $sgpr0_sgpr1 238 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 239 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 240 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 241 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 242 %5:vgpr_32 = COPY %2.sub3 243 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 244 %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) 245 %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) 246... 247--- 248 249# GFX9-LABEL: name: image_sample_l_not_merged_2 250# 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) 251# 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) 252 253name: image_sample_l_not_merged_2 254body: | 255 bb.0.entry: 256 %0:sgpr_64 = COPY $sgpr0_sgpr1 257 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 258 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 259 %3:sgpr_128 = COPY $sgpr92_sgpr93_sgpr94_sgpr95 260 %4:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 261 %5:vgpr_32 = COPY %2.sub3 262 %6:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 263 %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) 264 %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) 265... 266--- 267 268# GFX9-LABEL: name: image_sample_l_not_merged_3 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, 1, 0, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 271 272name: image_sample_l_not_merged_3 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, 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, 1, 0, 0, 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_4 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, 0, 1, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 289 290name: image_sample_l_not_merged_4 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, 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, 0, 1, 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_5 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, 1, 0, 0, 0, -1, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 307 308name: image_sample_l_not_merged_5 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, 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, 1, 0, 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_6 323# 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) 324# 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) 325 326name: image_sample_l_not_merged_6 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, implicit $exec :: (dereferenceable invariant load (s128)) 335 %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) 336 %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) 337... 338--- 339 340# GFX9-LABEL: name: image_sample_l_not_merged_7 341# 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) 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_7 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, implicit $exec :: (dereferenceable invariant load (s128)) 353 %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) 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_8 359# 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) 360# 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) 361 362name: image_sample_l_not_merged_8 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, implicit $exec :: (dereferenceable invariant load (s128)) 371 %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) 372 %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) 373... 374--- 375 376# GFX9-LABEL: name: image_sample_l_not_merged_9 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, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 379 380name: image_sample_l_not_merged_9 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, 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, 0, 0, implicit $exec :: (dereferenceable load (s96), align 16, addrspace 4) 391... 392--- 393 394# GFX9-LABEL: name: image_sample_l_not_merged_10 395# 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) 396# 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) 397 398name: image_sample_l_not_merged_10 399body: | 400 bb.0.entry: 401 %0:sgpr_64 = COPY $sgpr0_sgpr1 402 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 403 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 404 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 405 %4:vgpr_32 = COPY %2.sub3 406 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 407 %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) 408 %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) 409... 410--- 411 412# GFX9-LABEL: name: image_sample_merged_v1v3 413# 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) 414# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 415# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 416 417name: image_sample_merged_v1v3 418body: | 419 bb.0.entry: 420 %0:sgpr_64 = COPY $sgpr0_sgpr1 421 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 422 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 423 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 424 %4:vgpr_32 = COPY %2.sub3 425 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 426 %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) 427 %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) 428... 429--- 430 431# GFX9-LABEL: name: image_sample_b_merged_v1v3 432# 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) 433# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 434# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 435 436name: image_sample_b_merged_v1v3 437body: | 438 bb.0.entry: 439 %0:sgpr_64 = COPY $sgpr0_sgpr1 440 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 441 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 442 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 443 %4:vgpr_32 = COPY %2.sub3 444 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 445 %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) 446 %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) 447... 448--- 449 450# GFX9-LABEL: name: image_sample_b_cl_merged_v1v3 451# 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) 452# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 453# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 454 455name: image_sample_b_cl_merged_v1v3 456body: | 457 bb.0.entry: 458 %0:sgpr_64 = COPY $sgpr0_sgpr1 459 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 460 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 461 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 462 %4:vgpr_32 = COPY %2.sub3 463 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 464 %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) 465 %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) 466... 467--- 468 469# GFX9-LABEL: name: image_sample_b_cl_o_merged_v1v3 470# 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) 471# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 472# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 473 474name: image_sample_b_cl_o_merged_v1v3 475body: | 476 bb.0.entry: 477 %0:sgpr_64 = COPY $sgpr0_sgpr1 478 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 479 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 480 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 481 %4:vgpr_32 = COPY %2.sub3 482 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 483 %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) 484 %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) 485... 486--- 487 488# GFX9-LABEL: name: image_sample_b_o_merged_v1v3 489# 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) 490# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 491# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 492 493name: image_sample_b_o_merged_v1v3 494body: | 495 bb.0.entry: 496 %0:sgpr_64 = COPY $sgpr0_sgpr1 497 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 498 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 499 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 500 %4:vgpr_32 = COPY %2.sub3 501 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 502 %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) 503 %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) 504... 505--- 506 507# GFX9-LABEL: name: image_sample_c_merged_v1v3 508# 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) 509# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 510# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 511 512name: image_sample_c_merged_v1v3 513body: | 514 bb.0.entry: 515 %0:sgpr_64 = COPY $sgpr0_sgpr1 516 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 517 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 518 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 519 %4:vgpr_32 = COPY %2.sub3 520 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 521 %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) 522 %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) 523... 524--- 525 526# GFX9-LABEL: name: image_sample_cd_merged_v1v3 527# 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) 528# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 529# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 530 531name: image_sample_cd_merged_v1v3 532body: | 533 bb.0.entry: 534 %0:sgpr_64 = COPY $sgpr0_sgpr1 535 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 536 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 537 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 538 %4:vgpr_32 = COPY %2.sub3 539 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 540 %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) 541 %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) 542... 543--- 544 545# GFX9-LABEL: name: image_sample_cd_cl_merged_v1v3 546# 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) 547# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 548# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 549 550name: image_sample_cd_cl_merged_v1v3 551body: | 552 bb.0.entry: 553 %0:sgpr_64 = COPY $sgpr0_sgpr1 554 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 555 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 556 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 557 %4:vgpr_32 = COPY %2.sub3 558 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 559 %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) 560 %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) 561... 562--- 563 564# GFX9-LABEL: name: image_sample_cd_cl_o_merged_v1v3 565# 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) 566# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 567# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 568 569name: image_sample_cd_cl_o_merged_v1v3 570body: | 571 bb.0.entry: 572 %0:sgpr_64 = COPY $sgpr0_sgpr1 573 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 574 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 575 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 576 %4:vgpr_32 = COPY %2.sub3 577 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 578 %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) 579 %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) 580... 581--- 582 583# GFX9-LABEL: name: image_sample_cd_o_merged_v1v3 584# 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) 585# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 586# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 587 588name: image_sample_cd_o_merged_v1v3 589body: | 590 bb.0.entry: 591 %0:sgpr_64 = COPY $sgpr0_sgpr1 592 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 593 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 594 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 595 %4:vgpr_32 = COPY %2.sub3 596 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 597 %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) 598 %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) 599... 600--- 601 602# GFX9-LABEL: name: image_sample_cl_merged_v1v3 603# 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) 604# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 605# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 606 607name: image_sample_cl_merged_v1v3 608body: | 609 bb.0.entry: 610 %0:sgpr_64 = COPY $sgpr0_sgpr1 611 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 612 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 613 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 614 %4:vgpr_32 = COPY %2.sub3 615 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 616 %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) 617 %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) 618... 619--- 620 621# GFX9-LABEL: name: image_sample_cl_o_merged_v1v3 622# 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) 623# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 624# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 625 626name: image_sample_cl_o_merged_v1v3 627body: | 628 bb.0.entry: 629 %0:sgpr_64 = COPY $sgpr0_sgpr1 630 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 631 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 632 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 633 %4:vgpr_32 = COPY %2.sub3 634 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 635 %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) 636 %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) 637... 638--- 639 640# GFX9-LABEL: name: image_sample_c_b_merged_v1v3 641# 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) 642# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 643# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 644 645name: image_sample_c_b_merged_v1v3 646body: | 647 bb.0.entry: 648 %0:sgpr_64 = COPY $sgpr0_sgpr1 649 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 650 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 651 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 652 %4:vgpr_32 = COPY %2.sub3 653 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 654 %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) 655 %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) 656... 657--- 658 659# GFX9-LABEL: name: image_sample_c_b_cl_merged_v1v3 660# 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) 661# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 662# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 663 664name: image_sample_c_b_cl_merged_v1v3 665body: | 666 bb.0.entry: 667 %0:sgpr_64 = COPY $sgpr0_sgpr1 668 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 669 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 670 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 671 %4:vgpr_32 = COPY %2.sub3 672 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 673 %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) 674 %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) 675... 676--- 677 678# GFX9-LABEL: name: image_sample_c_b_cl_o_merged_v1v3 679# 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) 680# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 681# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 682 683name: image_sample_c_b_cl_o_merged_v1v3 684body: | 685 bb.0.entry: 686 %0:sgpr_64 = COPY $sgpr0_sgpr1 687 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 688 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 689 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 690 %4:vgpr_32 = COPY %2.sub3 691 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 692 %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) 693 %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) 694... 695--- 696 697# GFX9-LABEL: name: image_sample_c_b_o_merged_v1v3 698# 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) 699# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 700# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 701 702name: image_sample_c_b_o_merged_v1v3 703body: | 704 bb.0.entry: 705 %0:sgpr_64 = COPY $sgpr0_sgpr1 706 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 707 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 708 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 709 %4:vgpr_32 = COPY %2.sub3 710 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 711 %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) 712 %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) 713... 714--- 715 716# GFX9-LABEL: name: image_sample_c_cd_merged_v1v3 717# 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) 718# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 719# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 720 721name: image_sample_c_cd_merged_v1v3 722body: | 723 bb.0.entry: 724 %0:sgpr_64 = COPY $sgpr0_sgpr1 725 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 726 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 727 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 728 %4:vgpr_32 = COPY %2.sub3 729 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 730 %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) 731 %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) 732... 733--- 734 735# GFX9-LABEL: name: image_sample_c_cd_cl_merged_v1v3 736# 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) 737# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 738# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 739 740name: image_sample_c_cd_cl_merged_v1v3 741body: | 742 bb.0.entry: 743 %0:sgpr_64 = COPY $sgpr0_sgpr1 744 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 745 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 746 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 747 %4:vgpr_32 = COPY %2.sub3 748 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 749 %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) 750 %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) 751... 752--- 753 754# GFX9-LABEL: name: image_sample_c_cd_cl_o_merged_v1v3 755# 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) 756# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 757# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 758 759name: image_sample_c_cd_cl_o_merged_v1v3 760body: | 761 bb.0.entry: 762 %0:sgpr_64 = COPY $sgpr0_sgpr1 763 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 764 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 765 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 766 %4:vgpr_32 = COPY %2.sub3 767 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 768 %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) 769 %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) 770... 771--- 772 773# GFX9-LABEL: name: image_sample_c_cd_o_merged_v1v3 774# 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) 775# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 776# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 777 778name: image_sample_c_cd_o_merged_v1v3 779body: | 780 bb.0.entry: 781 %0:sgpr_64 = COPY $sgpr0_sgpr1 782 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 783 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 784 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 785 %4:vgpr_32 = COPY %2.sub3 786 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 787 %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) 788 %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) 789... 790--- 791 792# GFX9-LABEL: name: image_sample_c_cl_merged_v1v3 793# 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) 794# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 795# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 796 797name: image_sample_c_cl_merged_v1v3 798body: | 799 bb.0.entry: 800 %0:sgpr_64 = COPY $sgpr0_sgpr1 801 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 802 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 803 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 804 %4:vgpr_32 = COPY %2.sub3 805 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 806 %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) 807 %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) 808... 809--- 810 811# GFX9-LABEL: name: image_sample_c_cl_o_merged_v1v3 812# 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) 813# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 814# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 815 816name: image_sample_c_cl_o_merged_v1v3 817body: | 818 bb.0.entry: 819 %0:sgpr_64 = COPY $sgpr0_sgpr1 820 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 821 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 822 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 823 %4:vgpr_32 = COPY %2.sub3 824 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 825 %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) 826 %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) 827... 828--- 829 830# GFX9-LABEL: name: image_sample_c_d_merged_v1v3 831# 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) 832# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 833# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 834 835name: image_sample_c_d_merged_v1v3 836body: | 837 bb.0.entry: 838 %0:sgpr_64 = COPY $sgpr0_sgpr1 839 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 840 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 841 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 842 %4:vgpr_32 = COPY %2.sub3 843 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 844 %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) 845 %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) 846... 847--- 848 849# GFX9-LABEL: name: image_sample_c_d_cl_merged_v1v3 850# 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) 851# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 852# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 853 854name: image_sample_c_d_cl_merged_v1v3 855body: | 856 bb.0.entry: 857 %0:sgpr_64 = COPY $sgpr0_sgpr1 858 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 859 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 860 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 861 %4:vgpr_32 = COPY %2.sub3 862 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 863 %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) 864 %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) 865... 866--- 867 868# GFX9-LABEL: name: image_sample_c_d_cl_o_merged_v1v3 869# 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) 870# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 871# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 872 873name: image_sample_c_d_cl_o_merged_v1v3 874body: | 875 bb.0.entry: 876 %0:sgpr_64 = COPY $sgpr0_sgpr1 877 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 878 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 879 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 880 %4:vgpr_32 = COPY %2.sub3 881 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 882 %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) 883 %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) 884... 885--- 886 887# GFX9-LABEL: name: image_sample_c_d_o_merged_v1v3 888# 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) 889# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 890# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 891 892name: image_sample_c_d_o_merged_v1v3 893body: | 894 bb.0.entry: 895 %0:sgpr_64 = COPY $sgpr0_sgpr1 896 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 897 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 898 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 899 %4:vgpr_32 = COPY %2.sub3 900 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 901 %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) 902 %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) 903... 904--- 905 906# GFX9-LABEL: name: image_sample_c_l_merged_v1v3 907# 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) 908# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 909# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 910 911name: image_sample_c_l_merged_v1v3 912body: | 913 bb.0.entry: 914 %0:sgpr_64 = COPY $sgpr0_sgpr1 915 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 916 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 917 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 918 %4:vgpr_32 = COPY %2.sub3 919 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 920 %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) 921 %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) 922... 923--- 924 925# GFX9-LABEL: name: image_sample_c_lz_merged_v1v3 926# 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) 927# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 928# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 929 930name: image_sample_c_lz_merged_v1v3 931body: | 932 bb.0.entry: 933 %0:sgpr_64 = COPY $sgpr0_sgpr1 934 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 935 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 936 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 937 %4:vgpr_32 = COPY %2.sub3 938 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 939 %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) 940 %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) 941... 942--- 943 944# GFX9-LABEL: name: image_sample_c_lz_o_merged_v1v3 945# 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) 946# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 947# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 948 949name: image_sample_c_lz_o_merged_v1v3 950body: | 951 bb.0.entry: 952 %0:sgpr_64 = COPY $sgpr0_sgpr1 953 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 954 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 955 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 956 %4:vgpr_32 = COPY %2.sub3 957 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 958 %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) 959 %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) 960... 961--- 962 963# GFX9-LABEL: name: image_sample_c_l_o_merged_v1v3 964# 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) 965# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 966# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 967 968name: image_sample_c_l_o_merged_v1v3 969body: | 970 bb.0.entry: 971 %0:sgpr_64 = COPY $sgpr0_sgpr1 972 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 973 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 974 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 975 %4:vgpr_32 = COPY %2.sub3 976 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 977 %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) 978 %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) 979... 980--- 981 982# GFX9-LABEL: name: image_sample_c_o_merged_v1v3 983# 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) 984# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 985# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 986 987name: image_sample_c_o_merged_v1v3 988body: | 989 bb.0.entry: 990 %0:sgpr_64 = COPY $sgpr0_sgpr1 991 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 992 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 993 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 994 %4:vgpr_32 = COPY %2.sub3 995 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 996 %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) 997 %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) 998... 999--- 1000 1001# GFX9-LABEL: name: image_sample_d_merged_v1v3 1002# 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) 1003# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1004# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1005 1006name: image_sample_d_merged_v1v3 1007body: | 1008 bb.0.entry: 1009 %0:sgpr_64 = COPY $sgpr0_sgpr1 1010 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1011 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1012 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1013 %4:vgpr_32 = COPY %2.sub3 1014 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1015 %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) 1016 %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) 1017... 1018--- 1019 1020# GFX9-LABEL: name: image_sample_d_cl_merged_v1v3 1021# 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) 1022# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1023# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1024 1025name: image_sample_d_cl_merged_v1v3 1026body: | 1027 bb.0.entry: 1028 %0:sgpr_64 = COPY $sgpr0_sgpr1 1029 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1030 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1031 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1032 %4:vgpr_32 = COPY %2.sub3 1033 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1034 %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) 1035 %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) 1036... 1037--- 1038 1039# GFX9-LABEL: name: image_sample_d_cl_o_merged_v1v3 1040# 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) 1041# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1042# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1043 1044name: image_sample_d_cl_o_merged_v1v3 1045body: | 1046 bb.0.entry: 1047 %0:sgpr_64 = COPY $sgpr0_sgpr1 1048 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1049 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1050 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1051 %4:vgpr_32 = COPY %2.sub3 1052 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1053 %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) 1054 %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) 1055... 1056--- 1057 1058# GFX9-LABEL: name: image_sample_d_o_merged_v1v3 1059# 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) 1060# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1061# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1062 1063name: image_sample_d_o_merged_v1v3 1064body: | 1065 bb.0.entry: 1066 %0:sgpr_64 = COPY $sgpr0_sgpr1 1067 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1068 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1069 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1070 %4:vgpr_32 = COPY %2.sub3 1071 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1072 %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) 1073 %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) 1074... 1075--- 1076 1077# GFX9-LABEL: name: image_sample_lz_merged_v1v3 1078# 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) 1079# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1080# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1081 1082name: image_sample_lz_merged_v1v3 1083body: | 1084 bb.0.entry: 1085 %0:sgpr_64 = COPY $sgpr0_sgpr1 1086 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1087 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1088 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1089 %4:vgpr_32 = COPY %2.sub3 1090 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1091 %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) 1092 %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) 1093... 1094--- 1095 1096# GFX9-LABEL: name: image_sample_lz_o_merged_v1v3 1097# 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) 1098# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1099# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1100 1101name: image_sample_lz_o_merged_v1v3 1102body: | 1103 bb.0.entry: 1104 %0:sgpr_64 = COPY $sgpr0_sgpr1 1105 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1106 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1107 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1108 %4:vgpr_32 = COPY %2.sub3 1109 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1110 %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) 1111 %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) 1112... 1113--- 1114 1115# GFX9-LABEL: name: image_sample_l_o_merged_v1v3 1116# 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) 1117# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1118# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1119 1120name: image_sample_l_o_merged_v1v3 1121body: | 1122 bb.0.entry: 1123 %0:sgpr_64 = COPY $sgpr0_sgpr1 1124 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1125 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1126 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1127 %4:vgpr_32 = COPY %2.sub3 1128 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1129 %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) 1130 %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) 1131... 1132--- 1133 1134# GFX9-LABEL: name: image_sample_o_merged_v1v3 1135# 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) 1136# GFX9: %{{[0-9]+}}:vgpr_32 = COPY %8.sub0 1137# GFX9: %{{[0-9]+}}:vreg_96 = COPY killed %8.sub1_sub2_sub3 1138 1139name: image_sample_o_merged_v1v3 1140body: | 1141 bb.0.entry: 1142 %0:sgpr_64 = COPY $sgpr0_sgpr1 1143 %1:sreg_64_xexec = S_LOAD_DWORDX2_IMM %0, 36, 0 1144 %2:sgpr_128 = COPY $sgpr96_sgpr97_sgpr98_sgpr99 1145 %3:sgpr_256 = S_LOAD_DWORDX8_IMM %1, 208, 0 1146 %4:vgpr_32 = COPY %2.sub3 1147 %5:vreg_128 = BUFFER_LOAD_DWORDX4_OFFSET %2:sgpr_128, 0, 0, 0, 0, implicit $exec :: (dereferenceable invariant load (s128)) 1148 %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) 1149 %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) 1150... 1151--- 1152