brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.9 KiB · 1cf066d Raw
290 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64-linux-gnu -O0 -run-pass=legalizer %s -o - -global-isel-abort=1 | FileCheck %s3---4name:            pr63826_v2s165body:             |6  bb.0:7    liveins: $d08    ; CHECK-LABEL: name: pr63826_v2s169    ; CHECK: liveins: $d010    ; CHECK-NEXT: {{  $}}11    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d012    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 013    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 114    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<2 x s32>) = G_INSERT_VECTOR_ELT [[COPY]], [[C1]](s32), [[C]](s64)15    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<2 x s32>)16    ; CHECK-NEXT: RET_ReallyLR implicit $d017    %1:_(<2 x s32>) = COPY $d018    %0:_(<2 x s16>) = G_TRUNC %1(<2 x s32>)19    %4:_(s64) = G_CONSTANT i64 020    %3:_(s16) = G_CONSTANT i16 121    %2:_(<2 x s16>) = G_INSERT_VECTOR_ELT %0, %3(s16), %4(s64)22    %5:_(<2 x s32>) = G_ANYEXT %2(<2 x s16>)23    $d0 = COPY %5(<2 x s32>)24    RET_ReallyLR implicit $d025...26---27name:            pr63826_v2s828body:             |29  bb.0:30    liveins: $d031    ; CHECK-LABEL: name: pr63826_v2s832    ; CHECK: liveins: $d033    ; CHECK-NEXT: {{  $}}34    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d035    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 036    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 137    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<2 x s32>) = G_INSERT_VECTOR_ELT [[COPY]], [[C1]](s32), [[C]](s64)38    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<2 x s32>)39    ; CHECK-NEXT: RET_ReallyLR implicit $d040    %1:_(<2 x s32>) = COPY $d041    %0:_(<2 x s8>) = G_TRUNC %1(<2 x s32>)42    %4:_(s64) = G_CONSTANT i64 043    %3:_(s8) = G_CONSTANT i8 144    %2:_(<2 x s8>) = G_INSERT_VECTOR_ELT %0, %3(s8), %4(s64)45    %5:_(<2 x s32>) = G_ANYEXT %2(<2 x s8>)46    $d0 = COPY %5(<2 x s32>)47    RET_ReallyLR implicit $d048...49---50name:            pr63826_v4s851body:             |52  bb.0:53    liveins: $d054    ; CHECK-LABEL: name: pr63826_v4s855    ; CHECK: liveins: $d056    ; CHECK-NEXT: {{  $}}57    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d058    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 059    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 160    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<4 x s16>) = G_INSERT_VECTOR_ELT [[COPY]], [[C1]](s16), [[C]](s64)61    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<4 x s16>)62    ; CHECK-NEXT: RET_ReallyLR implicit $d063    %1:_(<4 x s16>) = COPY $d064    %0:_(<4 x s8>) = G_TRUNC %1(<4 x s16>)65    %4:_(s64) = G_CONSTANT i64 066    %3:_(s8) = G_CONSTANT i8 167    %2:_(<4 x s8>) = G_INSERT_VECTOR_ELT %0, %3(s8), %4(s64)68    %5:_(<4 x s16>) = G_ANYEXT %2(<4 x s8>)69    $d0 = COPY %5(<4 x s16>)70    RET_ReallyLR implicit $d071...72---73name:            v8s874body: |75  bb.0:76    liveins: $q077    ; CHECK-LABEL: name: v8s878    ; CHECK: liveins: $q079    ; CHECK-NEXT: {{  $}}80    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d081    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 182    ; CHECK-NEXT: %val:_(s8) = G_CONSTANT i8 4283    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<8 x s8>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s8), [[C]](s64)84    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<8 x s8>)85    ; CHECK-NEXT: RET_ReallyLR86    %0:_(<8 x s8>) = COPY $d087    %1:_(s64) = G_CONSTANT i64 188    %val:_(s8) = G_CONSTANT i8 4289    %2:_(<8 x s8>) = G_INSERT_VECTOR_ELT %0(<8 x s8>), %val(s8), %1(s64)90    $d0 = COPY %2(<8 x s8>)91    RET_ReallyLR92...93---94name:            v16s895body: |96  bb.0:97    liveins: $q098    ; CHECK-LABEL: name: v16s899    ; CHECK: liveins: $q0100    ; CHECK-NEXT: {{  $}}101    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0102    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1103    ; CHECK-NEXT: %val:_(s8) = G_CONSTANT i8 42104    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<16 x s8>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s8), [[C]](s64)105    ; CHECK-NEXT: $q0 = COPY [[IVEC]](<16 x s8>)106    ; CHECK-NEXT: RET_ReallyLR107    %0:_(<16 x s8>) = COPY $q0108    %1:_(s64) = G_CONSTANT i64 1109    %val:_(s8) = G_CONSTANT i8 42110    %2:_(<16 x s8>) = G_INSERT_VECTOR_ELT %0(<16 x s8>), %val(s8), %1(s64)111    $q0 = COPY %2(<16 x s8>)112    RET_ReallyLR113...114---115name:            v4s16116body: |117  bb.0:118    liveins: $q0119    ; CHECK-LABEL: name: v4s16120    ; CHECK: liveins: $q0121    ; CHECK-NEXT: {{  $}}122    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0123    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1124    ; CHECK-NEXT: %val:_(s16) = G_CONSTANT i16 42125    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<4 x s16>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s16), [[C]](s64)126    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<4 x s16>)127    ; CHECK-NEXT: RET_ReallyLR128    %0:_(<4 x s16>) = COPY $d0129    %1:_(s64) = G_CONSTANT i64 1130    %val:_(s16) = G_CONSTANT i16 42131    %2:_(<4 x s16>) = G_INSERT_VECTOR_ELT %0(<4 x s16>), %val(s16), %1(s64)132    $d0 = COPY %2(<4 x s16>)133    RET_ReallyLR134...135---136name:            v8s16137body: |138  bb.0:139    liveins: $q0140    ; CHECK-LABEL: name: v8s16141    ; CHECK: liveins: $q0142    ; CHECK-NEXT: {{  $}}143    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0144    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1145    ; CHECK-NEXT: %val:_(s16) = G_CONSTANT i16 42146    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<8 x s16>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s16), [[C]](s64)147    ; CHECK-NEXT: $q0 = COPY [[IVEC]](<8 x s16>)148    ; CHECK-NEXT: RET_ReallyLR149    %0:_(<8 x s16>) = COPY $q0150    %1:_(s64) = G_CONSTANT i64 1151    %val:_(s16) = G_CONSTANT i16 42152    %2:_(<8 x s16>) = G_INSERT_VECTOR_ELT %0(<8 x s16>), %val(s16), %1(s64)153    $q0 = COPY %2(<8 x s16>)154    RET_ReallyLR155...156---157name:            v2s32158body: |159  bb.0:160    liveins: $q0161    ; CHECK-LABEL: name: v2s32162    ; CHECK: liveins: $q0163    ; CHECK-NEXT: {{  $}}164    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0165    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1166    ; CHECK-NEXT: %val:_(s32) = G_CONSTANT i32 42167    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<2 x s32>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s32), [[C]](s64)168    ; CHECK-NEXT: $d0 = COPY [[IVEC]](<2 x s32>)169    ; CHECK-NEXT: RET_ReallyLR170    %0:_(<2 x s32>) = COPY $d0171    %1:_(s64) = G_CONSTANT i64 1172    %val:_(s32) = G_CONSTANT i32 42173    %2:_(<2 x s32>) = G_INSERT_VECTOR_ELT %0(<2 x s32>), %val(s32), %1(s64)174    $d0 = COPY %2(<2 x s32>)175    RET_ReallyLR176...177---178name:            v4s32179body: |180  bb.0:181    liveins: $q0182    ; CHECK-LABEL: name: v4s32183    ; CHECK: liveins: $q0184    ; CHECK-NEXT: {{  $}}185    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0186    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1187    ; CHECK-NEXT: %val:_(s32) = G_CONSTANT i32 42188    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<4 x s32>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s32), [[C]](s64)189    ; CHECK-NEXT: $q0 = COPY [[IVEC]](<4 x s32>)190    ; CHECK-NEXT: RET_ReallyLR191    %0:_(<4 x s32>) = COPY $q0192    %1:_(s64) = G_CONSTANT i64 1193    %val:_(s32) = G_CONSTANT i32 42194    %2:_(<4 x s32>) = G_INSERT_VECTOR_ELT %0(<4 x s32>), %val(s32), %1(s64)195    $q0 = COPY %2(<4 x s32>)196    RET_ReallyLR197...198---199name:            v2s64200body: |201  bb.0:202    liveins: $q0203    ; CHECK-LABEL: name: v2s64204    ; CHECK: liveins: $q0205    ; CHECK-NEXT: {{  $}}206    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0207    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1208    ; CHECK-NEXT: %val:_(s64) = G_CONSTANT i64 42209    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<2 x s64>) = G_INSERT_VECTOR_ELT [[COPY]], %val(s64), [[C]](s64)210    ; CHECK-NEXT: $q0 = COPY [[IVEC]](<2 x s64>)211    ; CHECK-NEXT: RET_ReallyLR212    %0:_(<2 x s64>) = COPY $q0213    %1:_(s64) = G_CONSTANT i64 1214    %val:_(s64) = G_CONSTANT i64 42215    %2:_(<2 x s64>) = G_INSERT_VECTOR_ELT %0(<2 x s64>), %val(s64), %1(s64)216    $q0 = COPY %2(<2 x s64>)217    RET_ReallyLR218...219---220name:            v3s8_crash221body:             |222  ; CHECK-LABEL: name: v3s8_crash223  ; CHECK: bb.0:224  ; CHECK-NEXT:   successors: %bb.1(0x80000000)225  ; CHECK-NEXT:   liveins: $w1, $w2, $w3, $x0226  ; CHECK-NEXT: {{  $}}227  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p0) = COPY $x0228  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:_(s32) = COPY $w1229  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:_(s32) = COPY $w2230  ; CHECK-NEXT:   [[COPY3:%[0-9]+]]:_(s32) = COPY $w3231  ; CHECK-NEXT:   [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF232  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 0233  ; CHECK-NEXT: {{  $}}234  ; CHECK-NEXT: bb.1:235  ; CHECK-NEXT:   successors: %bb.1(0x80000000)236  ; CHECK-NEXT: {{  $}}237  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0238  ; CHECK-NEXT:   [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY1]](s32)239  ; CHECK-NEXT:   [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY2]](s32)240  ; CHECK-NEXT:   [[TRUNC2:%[0-9]+]]:_(s8) = G_TRUNC [[COPY3]](s32)241  ; CHECK-NEXT:   [[DEF1:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF242  ; CHECK-NEXT:   [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s8>) = G_BUILD_VECTOR [[TRUNC]](s8), [[TRUNC1]](s8), [[TRUNC2]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8)243  ; CHECK-NEXT:   [[ANYEXT:%[0-9]+]]:_(<8 x s16>) = G_ANYEXT [[BUILD_VECTOR]](<8 x s8>)244  ; CHECK-NEXT:   [[UV:%[0-9]+]]:_(<4 x s16>), [[UV1:%[0-9]+]]:_(<4 x s16>) = G_UNMERGE_VALUES [[ANYEXT]](<8 x s16>)245  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 0246  ; CHECK-NEXT:   [[IVEC:%[0-9]+]]:_(<4 x s16>) = G_INSERT_VECTOR_ELT [[UV]], [[C2]](s16), [[C1]](s64)247  ; CHECK-NEXT:   [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16), [[UV4:%[0-9]+]]:_(s16), [[UV5:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[IVEC]](<4 x s16>)248  ; CHECK-NEXT:   [[TRUNC3:%[0-9]+]]:_(s8) = G_TRUNC [[UV2]](s16)249  ; CHECK-NEXT:   [[TRUNC4:%[0-9]+]]:_(s8) = G_TRUNC [[UV3]](s16)250  ; CHECK-NEXT:   [[TRUNC5:%[0-9]+]]:_(s8) = G_TRUNC [[UV4]](s16)251  ; CHECK-NEXT:   [[BUILD_VECTOR1:%[0-9]+]]:_(<16 x s8>) = G_BUILD_VECTOR [[TRUNC3]](s8), [[TRUNC4]](s8), [[TRUNC5]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8)252  ; CHECK-NEXT:   [[BUILD_VECTOR2:%[0-9]+]]:_(<16 x s8>) = G_BUILD_VECTOR [[C]](s8), [[DEF]](s8), [[DEF]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8), [[DEF1]](s8)253  ; CHECK-NEXT:   [[SHUF:%[0-9]+]]:_(<16 x s8>) = G_SHUFFLE_VECTOR [[BUILD_VECTOR1]](<16 x s8>), [[BUILD_VECTOR2]], shufflemask(0, 16, 16, 16, 1, 16, 16, 16, 2, 16, 16, 16, undef, undef, undef, undef)254  ; CHECK-NEXT:   [[BITCAST:%[0-9]+]]:_(<4 x s32>) = G_BITCAST [[SHUF]](<16 x s8>)255  ; CHECK-NEXT:   [[UITOFP:%[0-9]+]]:_(<4 x s32>) = G_UITOFP [[BITCAST]](<4 x s32>)256  ; CHECK-NEXT:   [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[UITOFP]](<4 x s32>)257  ; CHECK-NEXT:   G_STORE [[UV6]](s32), [[COPY]](p0) :: (store (s32), align 16)258  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 4259  ; CHECK-NEXT:   [[PTR_ADD:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C3]](s64)260  ; CHECK-NEXT:   G_STORE [[UV7]](s32), [[PTR_ADD]](p0) :: (store (s32) into unknown-address + 4)261  ; CHECK-NEXT:   [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 8262  ; CHECK-NEXT:   [[PTR_ADD1:%[0-9]+]]:_(p0) = nuw inbounds G_PTR_ADD [[COPY]], [[C4]](s64)263  ; CHECK-NEXT:   G_STORE [[UV8]](s32), [[PTR_ADD1]](p0) :: (store (s32) into unknown-address + 8, align 8)264  ; CHECK-NEXT:   G_BR %bb.1265  bb.1:266    liveins: $w1, $w2, $w3, $x0267 268    %0:_(p0) = COPY $x0269    %2:_(s32) = COPY $w1270    %3:_(s32) = COPY $w2271    %4:_(s32) = COPY $w3272    %5:_(<3 x s32>) = G_BUILD_VECTOR %2(s32), %3(s32), %4(s32)273    %1:_(<3 x s8>) = G_TRUNC %5(<3 x s32>)274    %8:_(s64) = G_CONSTANT i64 0275    %11:_(s8) = G_IMPLICIT_DEF276    %7:_(s8) = G_CONSTANT i8 0277    %10:_(<3 x s8>) = G_BUILD_VECTOR %7(s8), %11(s8), %11(s8)278 279  bb.2:280    %14:_(s64) = G_CONSTANT i64 0281    %15:_(s8) = G_CONSTANT i8 0282    %6:_(<3 x s8>) = G_INSERT_VECTOR_ELT %1, %15(s8), %14(s64)283    %9:_(<12 x s8>) = G_SHUFFLE_VECTOR %6(<3 x s8>), %10, shufflemask(0, 3, 3, 3, 1, 3, 3, 3, 2, 3, 3, 3)284    %12:_(<3 x s32>) = G_BITCAST %9(<12 x s8>)285    %13:_(<3 x s32>) = G_UITOFP %12(<3 x s32>)286    G_STORE %13(<3 x s32>), %0(p0) :: (store (<3 x s32>))287    G_BR %bb.2288 289...290