brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.5 KiB · cb5db22 Raw
363 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:            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]+]]:_(s32) = COPY $x1028    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1129    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)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]+]]:_(s32) = COPY $x1037    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1138    ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)39    ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s8))40    ; UNALIGNED-NEXT: PseudoRET41    %2:_(s32) = COPY $x1042    %0:_(s8) = G_TRUNC %2(s32)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]+]]:_(s32) = COPY $x1069    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)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]+]]:_(s32) = COPY $x1078    ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)79    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x1180    ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s16))81    ; UNALIGNED-NEXT: PseudoRET82    %2:_(s32) = COPY $x1083    %0:_(s16) = G_TRUNC %2(s32)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: _ }96frameInfo:97  maxAlignment:    198machineFunctionInfo:99  varArgsFrameIndex: 0100  varArgsSaveSize: 0101body:             |102  bb.1:103    liveins: $x10, $x11104 105    ; CHECK-LABEL: name: store_i32106    ; CHECK: liveins: $x10, $x11107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10109    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11110    ; CHECK-NEXT: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32))111    ; CHECK-NEXT: PseudoRET112    ;113    ; UNALIGNED-LABEL: name: store_i32114    ; UNALIGNED: liveins: $x10, $x11115    ; UNALIGNED-NEXT: {{  $}}116    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10117    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11118    ; UNALIGNED-NEXT: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32))119    ; UNALIGNED-NEXT: PseudoRET120    %0:_(s32) = COPY $x10121    %1:_(p0) = COPY $x11122    G_STORE %0(s32), %1(p0) :: (store (s32))123    PseudoRET124 125...126---127name:            store_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: $x10, $x11, $x12143 144    ; CHECK-LABEL: name: store_i64145    ; CHECK: liveins: $x10, $x11, $x12146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10148    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11149    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x12150    ; CHECK-NEXT: G_STORE [[COPY]](s32), [[COPY2]](p0) :: (store (s32), align 8)151    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4152    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY2]], [[C]](s32)153    ; CHECK-NEXT: G_STORE [[COPY1]](s32), [[PTR_ADD]](p0) :: (store (s32) into unknown-address + 4)154    ; CHECK-NEXT: PseudoRET155    ;156    ; UNALIGNED-LABEL: name: store_i64157    ; UNALIGNED: liveins: $x10, $x11, $x12158    ; UNALIGNED-NEXT: {{  $}}159    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10160    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $x11161    ; UNALIGNED-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $x12162    ; UNALIGNED-NEXT: G_STORE [[COPY]](s32), [[COPY2]](p0) :: (store (s32), align 8)163    ; UNALIGNED-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 4164    ; UNALIGNED-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY2]], [[C]](s32)165    ; UNALIGNED-NEXT: G_STORE [[COPY1]](s32), [[PTR_ADD]](p0) :: (store (s32) into unknown-address + 4)166    ; UNALIGNED-NEXT: PseudoRET167    %2:_(s32) = COPY $x10168    %3:_(s32) = COPY $x11169    %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32)170    %1:_(p0) = COPY $x12171    G_STORE %0(s64), %1(p0) :: (store (s64))172    PseudoRET173 174...175---176name:            store_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: $x10, $x11190 191    ; CHECK-LABEL: name: store_ptr192    ; CHECK: liveins: $x10, $x11193    ; CHECK-NEXT: {{  $}}194    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10195    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11196    ; CHECK-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0), align 8)197    ; CHECK-NEXT: PseudoRET198    ;199    ; UNALIGNED-LABEL: name: store_ptr200    ; UNALIGNED: liveins: $x10, $x11201    ; UNALIGNED-NEXT: {{  $}}202    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10203    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11204    ; UNALIGNED-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0), align 8)205    ; UNALIGNED-NEXT: PseudoRET206    %0:_(p0) = COPY $x10207    %1:_(p0) = COPY $x11208    G_STORE %0(p0), %1(p0) :: (store (p0), align 8)209    PseudoRET210 211...212---213name:            store_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: $x10, $x11228 229    ; CHECK-LABEL: name: store_i16_unaligned230    ; CHECK: liveins: $x10, $x11231    ; CHECK-NEXT: {{  $}}232    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10233    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)234    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11235    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s16) = COPY [[TRUNC]](s16)236    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 8237    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535238    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C1]]239    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[C]](s32)240    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)241    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 1242    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C2]](s32)243    ; CHECK-NEXT: G_STORE [[COPY2]](s16), [[COPY1]](p0) :: (store (s8))244    ; CHECK-NEXT: G_STORE [[TRUNC1]](s16), [[PTR_ADD]](p0) :: (store (s8) into unknown-address + 1)245    ; CHECK-NEXT: PseudoRET246    ;247    ; UNALIGNED-LABEL: name: store_i16_unaligned248    ; UNALIGNED: liveins: $x10, $x11249    ; UNALIGNED-NEXT: {{  $}}250    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10251    ; UNALIGNED-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)252    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11253    ; UNALIGNED-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s16), align 1)254    ; UNALIGNED-NEXT: PseudoRET255    %2:_(s32) = COPY $x10256    %0:_(s16) = G_TRUNC %2(s32)257    %1:_(p0) = COPY $x11258    G_STORE %0(s16), %1(p0) :: (store (s16), align 1)259    PseudoRET260 261...262---263name:            store_i32_unaligned264alignment:       4265tracksRegLiveness: true266registers:267  - { id: 0, class: _ }268  - { id: 1, class: _ }269frameInfo:270  maxAlignment:    1271machineFunctionInfo:272  varArgsFrameIndex: 0273  varArgsSaveSize: 0274body:             |275  bb.1:276    liveins: $x10, $x11277 278    ; CHECK-LABEL: name: store_i32_unaligned279    ; CHECK: liveins: $x10, $x11280    ; CHECK-NEXT: {{  $}}281    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10282    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11283    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)284    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16285    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[C]](s32)286    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2287    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C1]](s32)288    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)289    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8290    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535291    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY2]], [[C3]]292    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[AND]], [[C2]](s32)293    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR1]](s32)294    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s32) = G_CONSTANT i32 1295    ; CHECK-NEXT: [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C4]](s32)296    ; CHECK-NEXT: G_STORE [[TRUNC]](s16), [[COPY1]](p0) :: (store (s8))297    ; CHECK-NEXT: G_STORE [[TRUNC1]](s16), [[PTR_ADD1]](p0) :: (store (s8) into unknown-address + 1)298    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)299    ; CHECK-NEXT: [[C5:%[0-9]+]]:_(s32) = G_CONSTANT i32 8300    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[C5]](s32)301    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR2]](s32)302    ; CHECK-NEXT: [[PTR_ADD2:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[PTR_ADD]], [[C4]](s32)303    ; CHECK-NEXT: G_STORE [[TRUNC2]](s16), [[PTR_ADD]](p0) :: (store (s8) into unknown-address + 2)304    ; CHECK-NEXT: G_STORE [[TRUNC3]](s16), [[PTR_ADD2]](p0) :: (store (s8) into unknown-address + 3)305    ; CHECK-NEXT: PseudoRET306    ;307    ; UNALIGNED-LABEL: name: store_i32_unaligned308    ; UNALIGNED: liveins: $x10, $x11309    ; UNALIGNED-NEXT: {{  $}}310    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10311    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11312    ; UNALIGNED-NEXT: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32), align 1)313    ; UNALIGNED-NEXT: PseudoRET314    %0:_(s32) = COPY $x10315    %1:_(p0) = COPY $x11316    G_STORE %0(s32), %1(p0) :: (store (s32), align 1)317    PseudoRET318 319...320---321name:            store_i32_align2322alignment:       4323tracksRegLiveness: true324registers:325  - { id: 0, class: _ }326  - { id: 1, class: _ }327frameInfo:328  maxAlignment:    1329machineFunctionInfo:330  varArgsFrameIndex: 0331  varArgsSaveSize: 0332body:             |333  bb.1:334    liveins: $x10, $x11335 336    ; CHECK-LABEL: name: store_i32_align2337    ; CHECK: liveins: $x10, $x11338    ; CHECK-NEXT: {{  $}}339    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10340    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11341    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)342    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16343    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY2]], [[C]](s32)344    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 2345    ; CHECK-NEXT: [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY1]], [[C1]](s32)346    ; CHECK-NEXT: G_STORE [[COPY2]](s32), [[COPY1]](p0) :: (store (s16))347    ; CHECK-NEXT: G_STORE [[LSHR]](s32), [[PTR_ADD]](p0) :: (store (s16) into unknown-address + 2)348    ; CHECK-NEXT: PseudoRET349    ;350    ; UNALIGNED-LABEL: name: store_i32_align2351    ; UNALIGNED: liveins: $x10, $x11352    ; UNALIGNED-NEXT: {{  $}}353    ; UNALIGNED-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $x10354    ; UNALIGNED-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $x11355    ; UNALIGNED-NEXT: G_STORE [[COPY]](s32), [[COPY1]](p0) :: (store (s32), align 2)356    ; UNALIGNED-NEXT: PseudoRET357    %0:_(s32) = COPY $x10358    %1:_(p0) = COPY $x11359    G_STORE %0(s32), %1(p0) :: (store (s32), align 2)360    PseudoRET361 362...363