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