462 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=legalizer %s -o - \3# RUN: | FileCheck %s4# RUN: llc -mtriple=riscv64 -mattr=+unaligned-scalar-mem -run-pass=legalizer %s -o - \5# RUN: | FileCheck %s --check-prefix=UNALIGNED6 7---8name: store_i89alignment: 410tracksRegLiveness: true11registers:12 - { id: 0, class: _ }13 - { id: 1, class: _ }14 - { id: 2, class: _ }15frameInfo:16 maxAlignment: 117machineFunctionInfo:18 varArgsFrameIndex: 019 varArgsSaveSize: 020body: |21 bb.1:22 liveins: $x10, $x1123 24 ; CHECK-LABEL: name: store_i825 ; CHECK: liveins: $x10, $x1126 ; CHECK-NEXT: {{ $}}27 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1028 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1129 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)30 ; CHECK-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s8))31 ; CHECK-NEXT: PseudoRET32 ;33 ; UNALIGNED-LABEL: name: store_i834 ; UNALIGNED: liveins: $x10, $x1135 ; UNALIGNED-NEXT: {{ $}}36 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1037 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1138 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)39 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s8))40 ; UNALIGNED-NEXT: PseudoRET41 %2:_(s64) = COPY $x1042 %0:_(s8) = G_TRUNC %2(s64)43 %1:_(p0) = COPY $x1144 G_STORE %0(s8), %1(p0) :: (store (s8))45 PseudoRET46 47...48---49name: store_i1650alignment: 451tracksRegLiveness: true52registers:53 - { id: 0, class: _ }54 - { id: 1, class: _ }55 - { id: 2, class: _ }56frameInfo:57 maxAlignment: 158machineFunctionInfo:59 varArgsFrameIndex: 060 varArgsSaveSize: 061body: |62 bb.1:63 liveins: $x10, $x1164 65 ; CHECK-LABEL: name: store_i1666 ; CHECK: liveins: $x10, $x1167 ; CHECK-NEXT: {{ $}}68 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1069 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)70 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1171 ; CHECK-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s16))72 ; CHECK-NEXT: PseudoRET73 ;74 ; UNALIGNED-LABEL: name: store_i1675 ; UNALIGNED: liveins: $x10, $x1176 ; UNALIGNED-NEXT: {{ $}}77 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1078 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)79 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1180 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s16))81 ; UNALIGNED-NEXT: PseudoRET82 %2:_(s64) = COPY $x1083 %0:_(s16) = G_TRUNC %2(s64)84 %1:_(p0) = COPY $x1185 G_STORE %0(s16), %1(p0) :: (store (s16))86 PseudoRET87 88...89---90name: store_i3291alignment: 492tracksRegLiveness: true93registers:94 - { id: 0, class: _ }95 - { id: 1, class: _ }96 - { id: 2, class: _ }97frameInfo:98 maxAlignment: 199machineFunctionInfo:100 varArgsFrameIndex: 0101 varArgsSaveSize: 0102body: |103 bb.1:104 liveins: $x10, $x11105 106 ; CHECK-LABEL: name: store_i32107 ; CHECK: liveins: $x10, $x11108 ; CHECK-NEXT: {{ $}}109 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10110 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)111 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11112 ; CHECK-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32))113 ; CHECK-NEXT: PseudoRET114 ;115 ; UNALIGNED-LABEL: name: store_i32116 ; UNALIGNED: liveins: $x10, $x11117 ; UNALIGNED-NEXT: {{ $}}118 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10119 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)120 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11121 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32))122 ; UNALIGNED-NEXT: PseudoRET123 %2:_(s64) = COPY $x10124 %0:_(s32) = G_TRUNC %2(s64)125 %1:_(p0) = COPY $x11126 G_STORE %0(s32), %1(p0) :: (store (s32))127 PseudoRET128 129...130---131name: store_i64132alignment: 4133tracksRegLiveness: true134registers:135 - { id: 0, class: _ }136 - { id: 1, class: _ }137frameInfo:138 maxAlignment: 1139machineFunctionInfo:140 varArgsFrameIndex: 0141 varArgsSaveSize: 0142body: |143 bb.1:144 liveins: $x10, $x11145 146 ; CHECK-LABEL: name: store_i64147 ; CHECK: liveins: $x10, $x11148 ; CHECK-NEXT: {{ $}}149 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10150 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11151 ; CHECK-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))152 ; CHECK-NEXT: PseudoRET153 ;154 ; UNALIGNED-LABEL: name: store_i64155 ; UNALIGNED: liveins: $x10, $x11156 ; UNALIGNED-NEXT: {{ $}}157 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10158 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11159 ; UNALIGNED-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))160 ; UNALIGNED-NEXT: PseudoRET161 %0:_(s64) = COPY $x10162 %1:_(p0) = COPY $x11163 G_STORE %0(s64), %1(p0) :: (store (s64))164 PseudoRET165 166...167---168name: store_i128169alignment: 4170tracksRegLiveness: true171registers:172 - { id: 0, class: _ }173 - { id: 1, class: _ }174frameInfo:175 maxAlignment: 1176machineFunctionInfo:177 varArgsFrameIndex: 0178 varArgsSaveSize: 0179body: |180 bb.1:181 liveins: $x10, $x11182 183 ; CHECK-LABEL: name: store_i128184 ; CHECK: liveins: $x10, $x11185 ; CHECK-NEXT: {{ $}}186 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10187 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11188 ; CHECK-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))189 ; CHECK-NEXT: PseudoRET190 ;191 ; UNALIGNED-LABEL: name: store_i128192 ; UNALIGNED: liveins: $x10, $x11193 ; UNALIGNED-NEXT: {{ $}}194 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10195 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11196 ; UNALIGNED-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))197 ; UNALIGNED-NEXT: PseudoRET198 %0:_(s64) = COPY $x10199 %1:_(p0) = COPY $x11200 G_STORE %0(s64), %1(p0) :: (store (s64))201 PseudoRET202 203...204---205name: store_ptr206alignment: 4207tracksRegLiveness: true208registers:209 - { id: 0, class: _ }210 - { id: 1, class: _ }211frameInfo:212 maxAlignment: 1213machineFunctionInfo:214 varArgsFrameIndex: 0215 varArgsSaveSize: 0216body: |217 bb.1:218 liveins: $x10, $x11219 220 ; CHECK-LABEL: name: store_ptr221 ; CHECK: liveins: $x10, $x11222 ; CHECK-NEXT: {{ $}}223 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10224 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11225 ; CHECK-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0))226 ; CHECK-NEXT: PseudoRET227 ;228 ; UNALIGNED-LABEL: name: store_ptr229 ; UNALIGNED: liveins: $x10, $x11230 ; UNALIGNED-NEXT: {{ $}}231 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10232 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11233 ; UNALIGNED-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0))234 ; UNALIGNED-NEXT: PseudoRET235 %0:_(p0) = COPY $x10236 %1:_(p0) = COPY $x11237 G_STORE %0(p0), %1(p0) :: (store (p0))238 PseudoRET239 240...241---242name: store_i16_unaligned243alignment: 4244tracksRegLiveness: true245registers:246 - { id: 0, class: _ }247 - { id: 1, class: _ }248 - { id: 2, class: _ }249frameInfo:250 maxAlignment: 1251machineFunctionInfo:252 varArgsFrameIndex: 0253 varArgsSaveSize: 0254body: |255 bb.1:256 liveins: $x10, $x11257 258 ; CHECK-LABEL: name: store_i16_unaligned259 ; CHECK: liveins: $x10, $x11260 ; CHECK-NEXT: {{ $}}261 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10262 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)263 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11264 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s16) = COPY [[TRUNC]](s16)265 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 8266 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535267 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C1]]268 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[C]](s64)269 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s64)270 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1271 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C2]](s64)272 ; CHECK-NEXT: G_STORE [[COPY2]](s16), [[COPY1]](p0) :: (store (s8))273 ; CHECK-NEXT: G_STORE [[TRUNC1]](s16), [[PTR_ADD]](p0) :: (store (s8) into unknown-address + 1)274 ; CHECK-NEXT: PseudoRET275 ;276 ; UNALIGNED-LABEL: name: store_i16_unaligned277 ; UNALIGNED: liveins: $x10, $x11278 ; UNALIGNED-NEXT: {{ $}}279 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10280 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)281 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11282 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s16), align 1)283 ; UNALIGNED-NEXT: PseudoRET284 %2:_(s64) = COPY $x10285 %0:_(s16) = G_TRUNC %2(s64)286 %1:_(p0) = COPY $x11287 G_STORE %0(s16), %1(p0) :: (store (s16), align 1)288 PseudoRET289 290...291---292name: store_i32_unaligned293alignment: 4294tracksRegLiveness: true295registers:296 - { id: 0, class: _ }297 - { id: 1, class: _ }298 - { id: 2, class: _ }299frameInfo:300 maxAlignment: 1301machineFunctionInfo:302 varArgsFrameIndex: 0303 varArgsSaveSize: 0304body: |305 bb.1:306 liveins: $x10, $x11307 308 ; CHECK-LABEL: name: store_i32_unaligned309 ; CHECK: liveins: $x10, $x11310 ; CHECK-NEXT: {{ $}}311 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10312 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11313 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 16314 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295315 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C1]]316 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[C]](s64)317 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 2318 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C2]](s64)319 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)320 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 8321 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535322 ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C4]]323 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[AND1]], [[C3]](s64)324 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR1]](s64)325 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 1326 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C5]](s64)327 ; CHECK-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s8))328 ; CHECK-NEXT: G_STORE [[TRUNC1]](s16), [[PTR_ADD1]](p0) :: (store (s8) into unknown-address + 1)329 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s64)330 ; CHECK-NEXT: [[C6:%[0-9]+]]:_(s64) = G_CONSTANT i64 8331 ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s64) = G_AND [[LSHR]], [[C4]]332 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s64) = G_LSHR [[AND2]], [[C6]](s64)333 ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR2]](s64)334 ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD]], [[C5]](s64)335 ; CHECK-NEXT: G_STORE [[TRUNC2]](s16), [[PTR_ADD]](p0) :: (store (s8) into unknown-address + 2)336 ; CHECK-NEXT: G_STORE [[TRUNC3]](s16), [[PTR_ADD2]](p0) :: (store (s8) into unknown-address + 3)337 ; CHECK-NEXT: PseudoRET338 ;339 ; UNALIGNED-LABEL: name: store_i32_unaligned340 ; UNALIGNED: liveins: $x10, $x11341 ; UNALIGNED-NEXT: {{ $}}342 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10343 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)344 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11345 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32), align 1)346 ; UNALIGNED-NEXT: PseudoRET347 %2:_(s64) = COPY $x10348 %0:_(s32) = G_TRUNC %2(s64)349 %1:_(p0) = COPY $x11350 G_STORE %0(s32), %1(p0) :: (store (s32), align 1)351 PseudoRET352 353...354---355name: store_i32_align2356alignment: 4357tracksRegLiveness: true358registers:359 - { id: 0, class: _ }360 - { id: 1, class: _ }361 - { id: 2, class: _ }362frameInfo:363 maxAlignment: 1364machineFunctionInfo:365 varArgsFrameIndex: 0366 varArgsSaveSize: 0367body: |368 bb.1:369 liveins: $x10, $x11370 371 ; CHECK-LABEL: name: store_i32_align2372 ; CHECK: liveins: $x10, $x11373 ; CHECK-NEXT: {{ $}}374 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10375 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)376 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11377 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[TRUNC]](s32)378 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 16379 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295380 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C1]]381 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[C]](s64)382 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR]](s64)383 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 2384 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C2]](s64)385 ; CHECK-NEXT: G_STORE [[COPY2]](s32), [[COPY1]](p0) :: (store (s16))386 ; CHECK-NEXT: G_STORE [[TRUNC1]](s32), [[PTR_ADD]](p0) :: (store (s16) into unknown-address + 2)387 ; CHECK-NEXT: PseudoRET388 ;389 ; UNALIGNED-LABEL: name: store_i32_align2390 ; UNALIGNED: liveins: $x10, $x11391 ; UNALIGNED-NEXT: {{ $}}392 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10393 ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)394 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11395 ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32), align 2)396 ; UNALIGNED-NEXT: PseudoRET397 %2:_(s64) = COPY $x10398 %0:_(s32) = G_TRUNC %2(s64)399 %1:_(p0) = COPY $x11400 G_STORE %0(s32), %1(p0) :: (store (s32), align 2)401 PseudoRET402 403...404---405name: store_i64_align2406alignment: 4407tracksRegLiveness: true408registers:409 - { id: 0, class: _ }410 - { id: 1, class: _ }411frameInfo:412 maxAlignment: 1413machineFunctionInfo:414 varArgsFrameIndex: 0415 varArgsSaveSize: 0416body: |417 bb.1:418 liveins: $x10, $x11419 420 ; CHECK-LABEL: name: store_i64_align2421 ; CHECK: liveins: $x10, $x11422 ; CHECK-NEXT: {{ $}}423 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10424 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11425 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)426 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32427 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[COPY2]], [[C]](s64)428 ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 4429 ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C1]](s64)430 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY2]](s64)431 ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 16432 ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295433 ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY2]], [[C3]]434 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[AND]], [[C2]](s64)435 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR1]](s64)436 ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 2437 ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C4]](s64)438 ; CHECK-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s16))439 ; CHECK-NEXT: G_STORE [[TRUNC1]](s32), [[PTR_ADD1]](p0) :: (store (s16) into unknown-address + 2)440 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR]](s64)441 ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 16442 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s64) = G_LSHR [[LSHR]], [[C5]](s64)443 ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s32) = G_TRUNC [[LSHR2]](s64)444 ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD]], [[C4]](s64)445 ; CHECK-NEXT: G_STORE [[TRUNC2]](s32), [[PTR_ADD]](p0) :: (store (s16) into unknown-address + 4)446 ; CHECK-NEXT: G_STORE [[TRUNC3]](s32), [[PTR_ADD2]](p0) :: (store (s16) into unknown-address + 6)447 ; CHECK-NEXT: PseudoRET448 ;449 ; UNALIGNED-LABEL: name: store_i64_align2450 ; UNALIGNED: liveins: $x10, $x11451 ; UNALIGNED-NEXT: {{ $}}452 ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10453 ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11454 ; UNALIGNED-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64), align 2)455 ; UNALIGNED-NEXT: PseudoRET456 %0:_(s64) = COPY $x10457 %1:_(p0) = COPY $x11458 G_STORE %0(s64), %1(p0) :: (store (s64), align 2)459 PseudoRET460 461...462