brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.3 KiB · 9d2b6c1 Raw
432 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=legalizer %s -o - \3# RUN:   | FileCheck %s4# RUN: llc -mtriple=riscv32 -mattr=+unaligned-scalar-mem -run-pass=legalizer %s -o - \5# RUN:   | FileCheck %s --check-prefix=UNALIGNED6 7---8name:            load_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: $x1023 24    ; CHECK-LABEL: name: load_i825    ; CHECK: liveins: $x1026    ; CHECK-NEXT: {{  $}}27    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1028    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s8))29    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)30    ; CHECK-NEXT: $x10 = COPY [[ANYEXT]](s32)31    ; CHECK-NEXT: PseudoRET implicit $x1032    ;33    ; UNALIGNED-LABEL: name: load_i834    ; UNALIGNED: liveins: $x1035    ; UNALIGNED-NEXT: {{  $}}36    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1037    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s8))38    ; UNALIGNED-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)39    ; UNALIGNED-NEXT: $x10 = COPY [[ANYEXT]](s32)40    ; UNALIGNED-NEXT: PseudoRET implicit $x1041    %0:_(p0) = COPY $x1042    %1:_(s8) = G_LOAD %0(p0) :: (load (s8))43    %2:_(s32) = G_ANYEXT %1(s8)44    $x10 = COPY %2(s32)45    PseudoRET implicit $x1046 47...48---49name:            load_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: $x1064 65    ; CHECK-LABEL: name: load_i1666    ; CHECK: liveins: $x1067    ; CHECK-NEXT: {{  $}}68    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1069    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16))70    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)71    ; CHECK-NEXT: $x10 = COPY [[ANYEXT]](s32)72    ; CHECK-NEXT: PseudoRET implicit $x1073    ;74    ; UNALIGNED-LABEL: name: load_i1675    ; UNALIGNED: liveins: $x1076    ; UNALIGNED-NEXT: {{  $}}77    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x1078    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16))79    ; UNALIGNED-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)80    ; UNALIGNED-NEXT: $x10 = COPY [[ANYEXT]](s32)81    ; UNALIGNED-NEXT: PseudoRET implicit $x1082    %0:_(p0) = COPY $x1083    %1:_(s16) = G_LOAD %0(p0) :: (load (s16))84    %2:_(s32) = G_ANYEXT %1(s16)85    $x10 = COPY %2(s32)86    PseudoRET implicit $x1087 88...89---90name:            load_i3291alignment:       492tracksRegLiveness: true93registers:94  - { id: 0, class: _ }95  - { id: 1, class: _ }96frameInfo:97  maxAlignment:    198machineFunctionInfo:99  varArgsFrameIndex: 0100  varArgsSaveSize: 0101body:             |102  bb.1:103    liveins: $x10104 105    ; CHECK-LABEL: name: load_i32106    ; CHECK: liveins: $x10107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10109    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32))110    ; CHECK-NEXT: $x10 = COPY [[LOAD]](s32)111    ; CHECK-NEXT: PseudoRET implicit $x10112    ;113    ; UNALIGNED-LABEL: name: load_i32114    ; UNALIGNED: liveins: $x10115    ; UNALIGNED-NEXT: {{  $}}116    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10117    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32))118    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](s32)119    ; UNALIGNED-NEXT: PseudoRET implicit $x10120    %0:_(p0) = COPY $x10121    %1:_(s32) = G_LOAD %0(p0) :: (load (s32))122    $x10 = COPY %1(s32)123    PseudoRET implicit $x10124 125...126---127name:            load_i64128alignment:       4129tracksRegLiveness: true130registers:131  - { id: 0, class: _ }132  - { id: 1, class: _ }133  - { id: 2, class: _ }134  - { id: 3, class: _ }135frameInfo:136  maxAlignment:    1137machineFunctionInfo:138  varArgsFrameIndex: 0139  varArgsSaveSize: 0140body:             |141  bb.1:142    liveins: $x10143 144    ; CHECK-LABEL: name: load_i64145    ; CHECK: liveins: $x10146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10148    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 8)149    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4150    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)151    ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from unknown-address + 4)152    ; CHECK-NEXT: $x10 = COPY [[LOAD]](s32)153    ; CHECK-NEXT: $x11 = COPY [[LOAD1]](s32)154    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11155    ;156    ; UNALIGNED-LABEL: name: load_i64157    ; UNALIGNED: liveins: $x10158    ; UNALIGNED-NEXT: {{  $}}159    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10160    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 8)161    ; UNALIGNED-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4162    ; UNALIGNED-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)163    ; UNALIGNED-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from unknown-address + 4)164    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](s32)165    ; UNALIGNED-NEXT: $x11 = COPY [[LOAD1]](s32)166    ; UNALIGNED-NEXT: PseudoRET implicit $x10, implicit $x11167    %0:_(p0) = COPY $x10168    %1:_(s64) = G_LOAD %0(p0) :: (load (s64))169    %2:_(s32), %3:_(s32) = G_UNMERGE_VALUES %1(s64)170    $x10 = COPY %2(s32)171    $x11 = COPY %3(s32)172    PseudoRET implicit $x10, implicit $x11173 174...175---176name:            load_ptr177alignment:       4178tracksRegLiveness: true179registers:180  - { id: 0, class: _ }181  - { id: 1, class: _ }182frameInfo:183  maxAlignment:    1184machineFunctionInfo:185  varArgsFrameIndex: 0186  varArgsSaveSize: 0187body:             |188  bb.1:189    liveins: $x10190 191    ; CHECK-LABEL: name: load_ptr192    ; CHECK: liveins: $x10193    ; CHECK-NEXT: {{  $}}194    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10195    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[COPY]](p0) :: (load (p0), align 8)196    ; CHECK-NEXT: $x10 = COPY [[LOAD]](p0)197    ; CHECK-NEXT: PseudoRET implicit $x10198    ;199    ; UNALIGNED-LABEL: name: load_ptr200    ; UNALIGNED: liveins: $x10201    ; UNALIGNED-NEXT: {{  $}}202    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10203    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[COPY]](p0) :: (load (p0), align 8)204    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](p0)205    ; UNALIGNED-NEXT: PseudoRET implicit $x10206    %0:_(p0) = COPY $x10207    %1:_(p0) = G_LOAD %0(p0) :: (load (p0), align 8)208    $x10 = COPY %1(p0)209    PseudoRET implicit $x10210 211...212---213name:            load_i16_unaligned214alignment:       4215tracksRegLiveness: true216registers:217  - { id: 0, class: _ }218  - { id: 1, class: _ }219  - { id: 2, class: _ }220frameInfo:221  maxAlignment:    1222machineFunctionInfo:223  varArgsFrameIndex: 0224  varArgsSaveSize: 0225body:             |226  bb.1:227    liveins: $x10228 229    ; CHECK-LABEL: name: load_i16_unaligned230    ; CHECK: liveins: $x10231    ; CHECK-NEXT: {{  $}}232    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10233    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))234    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1235    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)236    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[PTR_ADD]](p0) :: (load (s8) from unknown-address + 1)237    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8238    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)239    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[ANYEXT]], [[C1]](s32)240    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]241    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)242    ; CHECK-NEXT: PseudoRET implicit $x10243    ;244    ; UNALIGNED-LABEL: name: load_i16_unaligned245    ; UNALIGNED: liveins: $x10246    ; UNALIGNED-NEXT: {{  $}}247    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10248    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16), align 1)249    ; UNALIGNED-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16)250    ; UNALIGNED-NEXT: $x10 = COPY [[ANYEXT]](s32)251    ; UNALIGNED-NEXT: PseudoRET implicit $x10252    %0:_(p0) = COPY $x10253    %1:_(s16) = G_LOAD %0(p0) :: (load (s16), align 1)254    %2:_(s32) = G_ANYEXT %1(s16)255    $x10 = COPY %2(s32)256    PseudoRET implicit $x10257 258...259---260name:            load_i32_unaligned261alignment:       4262tracksRegLiveness: true263registers:264  - { id: 0, class: _ }265  - { id: 1, class: _ }266frameInfo:267  maxAlignment:    1268machineFunctionInfo:269  varArgsFrameIndex: 0270  varArgsSaveSize: 0271body:             |272  bb.1:273    liveins: $x10274 275    ; CHECK-LABEL: name: load_i32_unaligned276    ; CHECK: liveins: $x10277    ; CHECK-NEXT: {{  $}}278    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10279    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))280    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1281    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)282    ; CHECK-NEXT: [[ZEXTLOAD1:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD]](p0) :: (load (s8) from unknown-address + 1)283    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8284    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[ZEXTLOAD1]], [[C1]](s32)285    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]286    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2287    ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C2]](s32)288    ; CHECK-NEXT: [[ZEXTLOAD2:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD1]](p0) :: (load (s8) from unknown-address + 2)289    ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD1]], [[C]](s32)290    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD2]](p0) :: (load (s8) from unknown-address + 3)291    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[LOAD]], [[C1]](s32)292    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[ZEXTLOAD2]]293    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16294    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[OR1]], [[C3]](s32)295    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[SHL2]], [[OR]]296    ; CHECK-NEXT: $x10 = COPY [[OR2]](s32)297    ; CHECK-NEXT: PseudoRET implicit $x10298    ;299    ; UNALIGNED-LABEL: name: load_i32_unaligned300    ; UNALIGNED: liveins: $x10301    ; UNALIGNED-NEXT: {{  $}}302    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10303    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 1)304    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](s32)305    ; UNALIGNED-NEXT: PseudoRET implicit $x10306    %0:_(p0) = COPY $x10307    %1:_(s32) = G_LOAD %0(p0) :: (load (s32), align 1)308    $x10 = COPY %1(s32)309    PseudoRET implicit $x10310 311...312---313name:            load_i32_align2314alignment:       4315tracksRegLiveness: true316registers:317  - { id: 0, class: _ }318  - { id: 1, class: _ }319frameInfo:320  maxAlignment:    1321machineFunctionInfo:322  varArgsFrameIndex: 0323  varArgsSaveSize: 0324body:             |325  bb.1:326    liveins: $x10327 328    ; CHECK-LABEL: name: load_i32_align2329    ; CHECK: liveins: $x10330    ; CHECK-NEXT: {{  $}}331    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10332    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s16))333    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2334    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)335    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s16) from unknown-address + 2)336    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16337    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[LOAD]], [[C1]](s32)338    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]339    ; CHECK-NEXT: $x10 = COPY [[OR]](s32)340    ; CHECK-NEXT: PseudoRET implicit $x10341    ;342    ; UNALIGNED-LABEL: name: load_i32_align2343    ; UNALIGNED: liveins: $x10344    ; UNALIGNED-NEXT: {{  $}}345    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10346    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 2)347    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](s32)348    ; UNALIGNED-NEXT: PseudoRET implicit $x10349    %0:_(p0) = COPY $x10350    %1:_(s32) = G_LOAD %0(p0) :: (load (s32), align 2)351    $x10 = COPY %1(s32)352    PseudoRET implicit $x10353 354...355---356name:            load_i64_unaligned357alignment:       4358tracksRegLiveness: true359registers:360  - { id: 0, class: _ }361  - { id: 1, class: _ }362  - { id: 2, class: _ }363  - { id: 3, class: _ }364frameInfo:365  maxAlignment:    1366machineFunctionInfo:367  varArgsFrameIndex: 0368  varArgsSaveSize: 0369body:             |370  bb.1:371    liveins: $x10372 373    ; CHECK-LABEL: name: load_i64_unaligned374    ; CHECK: liveins: $x10375    ; CHECK-NEXT: {{  $}}376    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10377    ; CHECK-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))378    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1379    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)380    ; CHECK-NEXT: [[ZEXTLOAD1:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD]](p0) :: (load (s8) from unknown-address + 1)381    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8382    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[ZEXTLOAD1]], [[C1]](s32)383    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]384    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 2385    ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C2]](s32)386    ; CHECK-NEXT: [[ZEXTLOAD2:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD1]](p0) :: (load (s8) from unknown-address + 2)387    ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD1]], [[C]](s32)388    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD2]](p0) :: (load (s8) from unknown-address + 3)389    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[LOAD]], [[C1]](s32)390    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[SHL1]], [[ZEXTLOAD2]]391    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 16392    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[OR1]], [[C3]](s32)393    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[SHL2]], [[OR]]394    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 4395    ; CHECK-NEXT: [[PTR_ADD3:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C4]](s32)396    ; CHECK-NEXT: [[ZEXTLOAD3:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD3]](p0) :: (load (s8) from unknown-address + 4)397    ; CHECK-NEXT: [[PTR_ADD4:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD3]], [[C]](s32)398    ; CHECK-NEXT: [[ZEXTLOAD4:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD4]](p0) :: (load (s8) from unknown-address + 5)399    ; CHECK-NEXT: [[SHL3:%[0-9]+]]:_(s32) = G_SHL [[ZEXTLOAD4]], [[C1]](s32)400    ; CHECK-NEXT: [[OR3:%[0-9]+]]:_(s32) = G_OR [[SHL3]], [[ZEXTLOAD3]]401    ; CHECK-NEXT: [[PTR_ADD5:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD3]], [[C2]](s32)402    ; CHECK-NEXT: [[ZEXTLOAD5:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[PTR_ADD5]](p0) :: (load (s8) from unknown-address + 6)403    ; CHECK-NEXT: [[PTR_ADD6:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD5]], [[C]](s32)404    ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD6]](p0) :: (load (s8) from unknown-address + 7)405    ; CHECK-NEXT: [[SHL4:%[0-9]+]]:_(s32) = G_SHL [[LOAD1]], [[C1]](s32)406    ; CHECK-NEXT: [[OR4:%[0-9]+]]:_(s32) = G_OR [[SHL4]], [[ZEXTLOAD5]]407    ; CHECK-NEXT: [[SHL5:%[0-9]+]]:_(s32) = G_SHL [[OR4]], [[C3]](s32)408    ; CHECK-NEXT: [[OR5:%[0-9]+]]:_(s32) = G_OR [[SHL5]], [[OR3]]409    ; CHECK-NEXT: $x10 = COPY [[OR2]](s32)410    ; CHECK-NEXT: $x11 = COPY [[OR5]](s32)411    ; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11412    ;413    ; UNALIGNED-LABEL: name: load_i64_unaligned414    ; UNALIGNED: liveins: $x10415    ; UNALIGNED-NEXT: {{  $}}416    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10417    ; UNALIGNED-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s32), align 1)418    ; UNALIGNED-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4419    ; UNALIGNED-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s32)420    ; UNALIGNED-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p0) :: (load (s32) from unknown-address + 4, align 1)421    ; UNALIGNED-NEXT: $x10 = COPY [[LOAD]](s32)422    ; UNALIGNED-NEXT: $x11 = COPY [[LOAD1]](s32)423    ; UNALIGNED-NEXT: PseudoRET implicit $x10, implicit $x11424    %0:_(p0) = COPY $x10425    %1:_(s64) = G_LOAD %0(p0) :: (load (s64), align 1)426    %2:_(s32), %3:_(s32) = G_UNMERGE_VALUES %1(s64)427    $x10 = COPY %2(s32)428    $x11 = COPY %3(s32)429    PseudoRET implicit $x10, implicit $x11430 431...432