211 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -run-pass=si-load-store-opt -o - %s | FileCheck %s3 4---5name: ds_write_b32__av32_x26body: |7 bb.0:8 liveins: $vgpr0, $vgpr1, $vgpr29 10 ; CHECK-LABEL: name: ds_write_b32__av32_x211 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr212 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr014 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr115 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr216 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)17 %0:vgpr_32 = COPY $vgpr018 %1:av_32 = COPY $vgpr119 %2:av_32 = COPY $vgpr220 DS_WRITE_B32_gfx9 %0, %1, 40, 0, implicit $exec :: (store (s32), addrspace 3)21 DS_WRITE_B32_gfx9 %0, %2, 96, 0, implicit $exec :: (store (s32), addrspace 3)22 23...24 25---26name: ds_write_b32__av32_x2_subregs_different_reg27body: |28 bb.0:29 liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr530 31 ; CHECK-LABEL: name: ds_write_b32__av32_x2_subregs_different_reg32 ; CHECK: liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr533 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr035 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64_align2 = COPY $vgpr2_vgpr336 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vreg_64_align2 = COPY $vgpr4_vgpr537 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]].sub0, [[COPY2]].sub1, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)38 %0:vgpr_32 = COPY $vgpr039 %1:av_64_align2 = COPY $vgpr2_vgpr340 %2:av_64_align2 = COPY $vgpr4_vgpr541 DS_WRITE_B32_gfx9 %0, %1.sub0, 40, 0, implicit $exec :: (store (s32), addrspace 3)42 DS_WRITE_B32_gfx9 %0, %2.sub1, 96, 0, implicit $exec :: (store (s32), addrspace 3)43 44...45 46---47name: ds_write_b32__unaligned_av64_subregs48body: |49 bb.0:50 liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr451 52 ; CHECK-LABEL: name: ds_write_b32__unaligned_av64_subregs53 ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr454 ; CHECK-NEXT: {{ $}}55 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr056 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr1_vgpr257 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY $vgpr3_vgpr458 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]].sub0, [[COPY2]].sub1, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)59 %0:vgpr_32 = COPY $vgpr060 %1:av_64 = COPY $vgpr1_vgpr261 %2:av_64 = COPY $vgpr3_vgpr462 DS_WRITE_B32_gfx9 %0, %1.sub0, 40, 0, implicit $exec :: (store (s32), addrspace 3)63 DS_WRITE_B32_gfx9 %0, %2.sub1, 96, 0, implicit $exec :: (store (s32), addrspace 3)64 65...66 67---68name: ds_write_b32__av32_x2_subregs_same_reg69body: |70 bb.0:71 liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr572 73 ; CHECK-LABEL: name: ds_write_b32__av32_x2_subregs_same_reg74 ; CHECK: liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr575 ; CHECK-NEXT: {{ $}}76 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr077 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64_align2 = COPY $vgpr2_vgpr378 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]].sub0, [[COPY1]].sub1, 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)79 %0:vgpr_32 = COPY $vgpr080 %1:av_64_align2 = COPY $vgpr2_vgpr381 DS_WRITE_B32_gfx9 %0, %1.sub0, 40, 0, implicit $exec :: (store (s32), addrspace 3)82 DS_WRITE_B32_gfx9 %0, %1.sub1, 96, 0, implicit $exec :: (store (s32), addrspace 3)83 84...85 86---87name: ds_write_b32__av32__vgpr3288body: |89 bb.0:90 liveins: $vgpr0, $vgpr1, $vgpr291 92 ; CHECK-LABEL: name: ds_write_b32__av32__vgpr3293 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr294 ; CHECK-NEXT: {{ $}}95 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr096 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr197 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr298 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)99 %0:vgpr_32 = COPY $vgpr0100 %1:av_32 = COPY $vgpr1101 %2:vgpr_32 = COPY $vgpr2102 DS_WRITE_B32_gfx9 %0, %1, 40, 0, implicit $exec :: (store (s32), addrspace 3)103 DS_WRITE_B32_gfx9 %0, %2, 96, 0, implicit $exec :: (store (s32), addrspace 3)104 105...106 107---108name: ds_write_b32__vgpr32__av32109body: |110 bb.0:111 liveins: $vgpr0, $vgpr1, $vgpr2112 113 ; CHECK-LABEL: name: ds_write_b32__vgpr32__av32114 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0117 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1118 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2119 ; CHECK-NEXT: DS_WRITE2_B32_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 10, 24, 0, implicit $exec :: (store (s32), addrspace 3)120 %0:vgpr_32 = COPY $vgpr0121 %1:vgpr_32 = COPY $vgpr1122 %2:av_32 = COPY $vgpr2123 DS_WRITE_B32_gfx9 %0, %1, 40, 0, implicit $exec :: (store (s32), addrspace 3)124 DS_WRITE_B32_gfx9 %0, %2, 96, 0, implicit $exec :: (store (s32), addrspace 3)125 126...127 128---129name: ds_write_b64__av64_x2130body: |131 bb.0:132 liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr5133 134 ; CHECK-LABEL: name: ds_write_b64__av64_x2135 ; CHECK: liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr5136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0138 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64_align2 = COPY $vgpr2_vgpr3139 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vreg_64_align2 = COPY $vgpr4_vgpr5140 ; CHECK-NEXT: DS_WRITE2_B64_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 5, 12, 0, implicit $exec :: (store (s64), addrspace 3)141 %0:vgpr_32 = COPY $vgpr0142 %1:av_64_align2 = COPY $vgpr2_vgpr3143 %2:av_64_align2 = COPY $vgpr4_vgpr5144 DS_WRITE_B64_gfx9 %0, %1, 40, 0, implicit $exec :: (store (s64), addrspace 3)145 DS_WRITE_B64_gfx9 %0, %2, 96, 0, implicit $exec :: (store (s64), addrspace 3)146 147...148 149---150name: ds_write_b64__av64_x2_subregs151body: |152 bb.0:153 liveins: $vgpr0, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9154 155 ; CHECK-LABEL: name: ds_write_b64__av64_x2_subregs156 ; CHECK: liveins: $vgpr0, $vgpr2_vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8_vgpr9157 ; CHECK-NEXT: {{ $}}158 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0159 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_128_align2 = COPY $vgpr2_vgpr3_vgpr4_vgpr5160 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vreg_128_align2 = COPY $vgpr6_vgpr7_vgpr8_vgpr9161 ; CHECK-NEXT: DS_WRITE2_B64_gfx9 [[COPY]], [[COPY1]].sub2_sub3, [[COPY2]].sub2_sub3, 5, 12, 0, implicit $exec :: (store (s64), addrspace 3)162 %0:vgpr_32 = COPY $vgpr0163 %1:av_128_align2 = COPY $vgpr2_vgpr3_vgpr4_vgpr5164 %2:av_128_align2 = COPY $vgpr6_vgpr7_vgpr8_vgpr9165 DS_WRITE_B64_gfx9 %0, %1.sub2_sub3, 40, 0, implicit $exec :: (store (s64), addrspace 3)166 DS_WRITE_B64_gfx9 %0, %2.sub2_sub3, 96, 0, implicit $exec :: (store (s64), addrspace 3)167 168...169 170---171name: ds_writest64_b32__av32_x2172body: |173 bb.0:174 liveins: $vgpr0, $vgpr1, $vgpr2175 176 ; CHECK-LABEL: name: ds_writest64_b32__av32_x2177 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2178 ; CHECK-NEXT: {{ $}}179 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0180 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1181 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2182 ; CHECK-NEXT: DS_WRITE2ST64_B32_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 1, 3, 0, implicit $exec :: (store (s32), addrspace 3)183 %0:vgpr_32 = COPY $vgpr0184 %1:av_32 = COPY $vgpr1185 %2:av_32 = COPY $vgpr2186 DS_WRITE_B32_gfx9 %0, %1, 256, 0, implicit $exec :: (store (s32), addrspace 3)187 DS_WRITE_B32_gfx9 %0, %2, 768, 0, implicit $exec :: (store (s32), addrspace 3)188 189...190 191---192name: ds_writest64_b64__av64_x2193body: |194 bb.0:195 liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr5196 197 ; CHECK-LABEL: name: ds_writest64_b64__av64_x2198 ; CHECK: liveins: $vgpr0, $vgpr2_vgpr3, $vgpr4_vgpr5199 ; CHECK-NEXT: {{ $}}200 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0201 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vreg_64_align2 = COPY $vgpr2_vgpr3202 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vreg_64_align2 = COPY $vgpr4_vgpr5203 ; CHECK-NEXT: DS_WRITE2ST64_B64_gfx9 [[COPY]], [[COPY1]], [[COPY2]], 1, 3, 0, implicit $exec :: (store (s64), addrspace 3)204 %0:vgpr_32 = COPY $vgpr0205 %1:av_64_align2 = COPY $vgpr2_vgpr3206 %2:av_64_align2 = COPY $vgpr4_vgpr5207 DS_WRITE_B64_gfx9 %0, %1, 512, 0, implicit $exec :: (store (s64), addrspace 3)208 DS_WRITE_B64_gfx9 %0, %2, 1536, 0, implicit $exec :: (store (s64), addrspace 3)209 210...211