brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.4 KiB · fbcc87f Raw
231 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s | FileCheck %s3 4---5name:            shuffle_concat_16tracksRegLiveness: true7body:             |8  bb.0:9    liveins: $x0, $x1, $x2, $x310 11    ; CHECK-LABEL: name: shuffle_concat_112    ; CHECK: liveins: $x0, $x1, $x2, $x313    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: %p2:_(p0) = COPY $x115    ; CHECK-NEXT: %p3:_(p0) = COPY $x216    ; CHECK-NEXT: %p4:_(p0) = COPY $x317    ; CHECK-NEXT: %a:_(<4 x s8>) = G_LOAD %p4(p0) :: (load (<4 x s8>))18    ; CHECK-NEXT: %b:_(<4 x s8>) = G_LOAD %p3(p0) :: (load (<4 x s8>))19    ; CHECK-NEXT: %c:_(<4 x s8>) = G_LOAD %p2(p0) :: (load (<4 x s8>))20    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF21    ; CHECK-NEXT: %z:_(<16 x s8>) = G_CONCAT_VECTORS %a(<4 x s8>), %b(<4 x s8>), %c(<4 x s8>), [[DEF]](<4 x s8>)22    ; CHECK-NEXT: $q0 = COPY %z(<16 x s8>)23    ; CHECK-NEXT: RET_ReallyLR implicit $q024    %p1:_(p0) = COPY $x025    %p2:_(p0) = COPY $x126    %p3:_(p0) = COPY $x227    %p4:_(p0) = COPY $x328 29    %ImpDef:_(<4 x s8>) = G_IMPLICIT_DEF30    %a:_(<4 x s8>) = G_LOAD %p4:_(p0) :: (load (<4 x s8>))31    %b:_(<4 x s8>) = G_LOAD %p3:_(p0) :: (load (<4 x s8>))32    %c:_(<4 x s8>) = G_LOAD %p2:_(p0) :: (load (<4 x s8>))33    %d:_(<4 x s8>) = G_LOAD %p1:_(p0) :: (load (<4 x s8>))34 35    %x:_(<16 x s8>) = G_SHUFFLE_VECTOR %a:_(<4 x s8>), %b:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, undef, undef, undef, undef, undef, undef, undef, undef)36    %y:_(<16 x s8>) = G_SHUFFLE_VECTOR %c:_(<4 x s8>), %d:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)37    %z:_(<16 x s8>) = G_SHUFFLE_VECTOR %x:_(<16 x s8>), %y:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, -1, -1, -1, -1)38 39    $q0 = COPY %z(<16 x s8>)40    RET_ReallyLR implicit $q041...42 43---44name:            shuffle_concat_245tracksRegLiveness: true46body:             |47  bb.0:48    liveins: $x0, $x1, $x2, $x349 50    ; CHECK-LABEL: name: shuffle_concat_251    ; CHECK: liveins: $x0, $x1, $x2, $x352    ; CHECK-NEXT: {{  $}}53    ; CHECK-NEXT: %p1:_(p0) = COPY $x054    ; CHECK-NEXT: %p2:_(p0) = COPY $x155    ; CHECK-NEXT: %p3:_(p0) = COPY $x256    ; CHECK-NEXT: %p4:_(p0) = COPY $x357    ; CHECK-NEXT: %a:_(<4 x s8>) = G_LOAD %p4(p0) :: (load (<4 x s8>))58    ; CHECK-NEXT: %b:_(<4 x s8>) = G_LOAD %p3(p0) :: (load (<4 x s8>))59    ; CHECK-NEXT: %c:_(<4 x s8>) = G_LOAD %p2(p0) :: (load (<4 x s8>))60    ; CHECK-NEXT: %d:_(<4 x s8>) = G_LOAD %p1(p0) :: (load (<4 x s8>))61    ; CHECK-NEXT: %z:_(<16 x s8>) = G_CONCAT_VECTORS %a(<4 x s8>), %b(<4 x s8>), %c(<4 x s8>), %d(<4 x s8>)62    ; CHECK-NEXT: $q0 = COPY %z(<16 x s8>)63    ; CHECK-NEXT: RET_ReallyLR implicit $q064    %p1:_(p0) = COPY $x065    %p2:_(p0) = COPY $x166    %p3:_(p0) = COPY $x267    %p4:_(p0) = COPY $x368 69    %ImpDef:_(<4 x s8>) = G_IMPLICIT_DEF70    %a:_(<4 x s8>) = G_LOAD %p4:_(p0) :: (load (<4 x s8>))71    %b:_(<4 x s8>) = G_LOAD %p3:_(p0) :: (load (<4 x s8>))72    %c:_(<4 x s8>) = G_LOAD %p2:_(p0) :: (load (<4 x s8>))73    %d:_(<4 x s8>) = G_LOAD %p1:_(p0) :: (load (<4 x s8>))74 75    %v:_(<16 x s8>) = G_SHUFFLE_VECTOR %a:_(<4 x s8>), %b:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, undef, undef, undef, undef, undef, undef, undef, undef)76    %w:_(<16 x s8>) = G_SHUFFLE_VECTOR %c:_(<4 x s8>), %ImpDef:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)77    %x:_(<16 x s8>) = G_SHUFFLE_VECTOR %v:_(<16 x s8>), %w:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, undef, undef, undef, undef)78    %y:_(<16 x s8>) = G_SHUFFLE_VECTOR %d:_(<4 x s8>), %ImpDef:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)79    %z:_(<16 x s8>) = G_SHUFFLE_VECTOR %x:_(<16 x s8>), %y:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16, 17, 18, 19)80 81    $q0 = COPY %z(<16 x s8>)82    RET_ReallyLR implicit $q083...84 85---86name:            shuffle_concat_387tracksRegLiveness: true88body:             |89  bb.0:90    liveins: $x0, $x1, $x2, $x391 92    ; CHECK-LABEL: name: shuffle_concat_393    ; CHECK: liveins: $x0, $x1, $x2, $x394    ; CHECK-NEXT: {{  $}}95    ; CHECK-NEXT: %p2:_(p0) = COPY $x196    ; CHECK-NEXT: %p3:_(p0) = COPY $x297    ; CHECK-NEXT: %p4:_(p0) = COPY $x398    ; CHECK-NEXT: %a:_(<4 x s8>) = G_LOAD %p4(p0) :: (load (<4 x s8>))99    ; CHECK-NEXT: %b:_(<4 x s8>) = G_LOAD %p3(p0) :: (load (<4 x s8>))100    ; CHECK-NEXT: %c:_(<4 x s8>) = G_LOAD %p2(p0) :: (load (<4 x s8>))101    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF102    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS %a(<4 x s8>), %b(<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>)103    ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS %c(<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>)104    ; CHECK-NEXT: %z:_(<16 x s8>) = G_SHUFFLE_VECTOR [[CONCAT_VECTORS]](<16 x s8>), [[CONCAT_VECTORS1]], shufflemask(0, undef, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, undef, undef, undef, undef)105    ; CHECK-NEXT: $q0 = COPY %z(<16 x s8>)106    ; CHECK-NEXT: RET_ReallyLR implicit $q0107    %p1:_(p0) = COPY $x0108    %p2:_(p0) = COPY $x1109    %p3:_(p0) = COPY $x2110    %p4:_(p0) = COPY $x3111 112    %ImpDef:_(<4 x s8>) = G_IMPLICIT_DEF113    %a:_(<4 x s8>) = G_LOAD %p4:_(p0) :: (load (<4 x s8>))114    %b:_(<4 x s8>) = G_LOAD %p3:_(p0) :: (load (<4 x s8>))115    %c:_(<4 x s8>) = G_LOAD %p2:_(p0) :: (load (<4 x s8>))116    %d:_(<4 x s8>) = G_LOAD %p1:_(p0) :: (load (<4 x s8>))117 118    %x:_(<16 x s8>) = G_SHUFFLE_VECTOR %a:_(<4 x s8>), %b:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, undef, undef, undef, undef, undef, undef, undef, undef)119    %y:_(<16 x s8>) = G_SHUFFLE_VECTOR %c:_(<4 x s8>), %d:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)120    %z:_(<16 x s8>) = G_SHUFFLE_VECTOR %x:_(<16 x s8>), %y:_, shufflemask(0, -1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, -1, -1, -1, -1)121 122    $q0 = COPY %z(<16 x s8>)123    RET_ReallyLR implicit $q0124...125 126---127name:            shuffle_concat_4128tracksRegLiveness: true129body:             |130  bb.0:131    liveins: $x0, $x1, $x2, $x3132 133    ; CHECK-LABEL: name: shuffle_concat_4134    ; CHECK: liveins: $x0, $x1, $x2, $x3135    ; CHECK-NEXT: {{  $}}136    ; CHECK-NEXT: %p2:_(p0) = COPY $x1137    ; CHECK-NEXT: %p4:_(p0) = COPY $x3138    ; CHECK-NEXT: %a:_(<4 x s8>) = G_LOAD %p4(p0) :: (load (<4 x s8>))139    ; CHECK-NEXT: %c:_(<4 x s8>) = G_LOAD %p2(p0) :: (load (<4 x s8>))140    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF141    ; CHECK-NEXT: %z:_(<16 x s8>) = G_CONCAT_VECTORS %a(<4 x s8>), [[DEF]](<4 x s8>), %c(<4 x s8>), [[DEF]](<4 x s8>)142    ; CHECK-NEXT: $q0 = COPY %z(<16 x s8>)143    ; CHECK-NEXT: RET_ReallyLR implicit $q0144    %p1:_(p0) = COPY $x0145    %p2:_(p0) = COPY $x1146    %p3:_(p0) = COPY $x2147    %p4:_(p0) = COPY $x3148 149    %ImpDef:_(<4 x s8>) = G_IMPLICIT_DEF150    %a:_(<4 x s8>) = G_LOAD %p4:_(p0) :: (load (<4 x s8>))151    %b:_(<4 x s8>) = G_LOAD %p3:_(p0) :: (load (<4 x s8>))152    %c:_(<4 x s8>) = G_LOAD %p2:_(p0) :: (load (<4 x s8>))153    %d:_(<4 x s8>) = G_LOAD %p1:_(p0) :: (load (<4 x s8>))154 155    %x:_(<16 x s8>) = G_SHUFFLE_VECTOR %a:_(<4 x s8>), %b:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, undef, undef, undef, undef, undef, undef, undef, undef)156    %y:_(<16 x s8>) = G_SHUFFLE_VECTOR %c:_(<4 x s8>), %d:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)157    %z:_(<16 x s8>) = G_SHUFFLE_VECTOR %x:_(<16 x s8>), %y:_, shufflemask(0, 1, 2, 3, -1, -1, -1, -1, 16, 17, 18, 19, -1, -1, -1, -1)158 159    $q0 = COPY %z(<16 x s8>)160    RET_ReallyLR implicit $q0161...162 163---164name:            shuffle_concat_5165tracksRegLiveness: true166body:             |167  bb.0:168    liveins: $x0, $x1, $x2, $x3169 170    ; CHECK-LABEL: name: shuffle_concat_5171    ; CHECK: liveins: $x0, $x1, $x2, $x3172    ; CHECK-NEXT: {{  $}}173    ; CHECK-NEXT: %p2:_(p0) = COPY $x1174    ; CHECK-NEXT: %p3:_(p0) = COPY $x2175    ; CHECK-NEXT: %p4:_(p0) = COPY $x3176    ; CHECK-NEXT: %a:_(<4 x s8>) = G_LOAD %p4(p0) :: (load (<4 x s8>))177    ; CHECK-NEXT: %b:_(<4 x s8>) = G_LOAD %p3(p0) :: (load (<4 x s8>))178    ; CHECK-NEXT: %c:_(<4 x s8>) = G_LOAD %p2(p0) :: (load (<4 x s8>))179    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s8>) = G_IMPLICIT_DEF180    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS %a(<4 x s8>), %b(<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>)181    ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<16 x s8>) = G_CONCAT_VECTORS %c(<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>), [[DEF]](<4 x s8>)182    ; CHECK-NEXT: %z:_(<16 x s8>) = G_SHUFFLE_VECTOR [[CONCAT_VECTORS]](<16 x s8>), [[CONCAT_VECTORS1]], shufflemask(undef, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, undef, undef, undef, undef)183    ; CHECK-NEXT: $q0 = COPY %z(<16 x s8>)184    ; CHECK-NEXT: RET_ReallyLR implicit $q0185    %p1:_(p0) = COPY $x0186    %p2:_(p0) = COPY $x1187    %p3:_(p0) = COPY $x2188    %p4:_(p0) = COPY $x3189 190    %ImpDef:_(<4 x s8>) = G_IMPLICIT_DEF191    %a:_(<4 x s8>) = G_LOAD %p4:_(p0) :: (load (<4 x s8>))192    %b:_(<4 x s8>) = G_LOAD %p3:_(p0) :: (load (<4 x s8>))193    %c:_(<4 x s8>) = G_LOAD %p2:_(p0) :: (load (<4 x s8>))194    %d:_(<4 x s8>) = G_LOAD %p1:_(p0) :: (load (<4 x s8>))195 196    %x:_(<16 x s8>) = G_SHUFFLE_VECTOR %a:_(<4 x s8>), %b:_, shufflemask(0, 1, 2, 3, 4, 5, 6, 7, undef, undef, undef, undef, undef, undef, undef, undef)197    %y:_(<16 x s8>) = G_SHUFFLE_VECTOR %c:_(<4 x s8>), %d:_, shufflemask(0, 1, 2, 3, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef, undef)198    %z:_(<16 x s8>) = G_SHUFFLE_VECTOR %x:_(<16 x s8>), %y:_, shufflemask(-1, 1, 2, 3, 4, 5, 6, 7, 16, 17, 18, 19, -1, -1, -1, -1)199 200    $q0 = COPY %z(<16 x s8>)201    RET_ReallyLR implicit $q0202...203 204---205name:            single_vector_to_copy206tracksRegLiveness: true207body:             |208  bb.0:209    liveins: $q0, $q1210 211    ; CHECK-LABEL: name: single_vector_to_copy212    ; CHECK: liveins: $q0, $q1213    ; CHECK-NEXT: {{  $}}214    ; CHECK-NEXT: %p1:_(<4 x s32>) = COPY $q0215    ; CHECK-NEXT: %p2:_(<4 x s32>) = COPY $q1216    ; CHECK-NEXT: $q0 = COPY %p1(<4 x s32>)217    ; CHECK-NEXT: $q1 = COPY %p2(<4 x s32>)218    ; CHECK-NEXT: RET_ReallyLR implicit $q0219    %p1:_(<4 x s32>) = COPY $q0220    %p2:_(<4 x s32>) = COPY $q1221 222    %a:_(<8 x s32>) = G_CONCAT_VECTORS %p1:_(<4 x s32>), %p2:_(<4 x s32>)223 224    %x:_(<4 x s32>) = G_SHUFFLE_VECTOR %a:_(<8 x s32>), %a:_, shufflemask(0, 1, 2, 3)225    %y:_(<4 x s32>) = G_SHUFFLE_VECTOR %a:_(<8 x s32>), %a:_, shufflemask(4, 5, 6, 7)226 227    $q0 = COPY %x(<4 x s32>)228    $q1 = COPY %y(<4 x s32>)229    RET_ReallyLR implicit $q0230...231