brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.2 KiB · 8ccc231 Raw
789 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s3 4---5name:            splatvector_nxv1i1_06legalized:       false7tracksRegLiveness: true8body:             |9  bb.1:10    ; CHECK-LABEL: name: splatvector_nxv1i1_011    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -112    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 1 x s1>) = G_VMSET_VL [[C]](s64)13    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 1 x s1>) = G_VMCLR_VL [[C]](s64)14    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 1 x s1>)15    ; CHECK-NEXT: PseudoRET implicit $v016    %0:_(s1) = G_CONSTANT i1 017    %1:_(<vscale x 1 x s1>) = G_SPLAT_VECTOR %0(s1)18    $v0 = COPY %1(<vscale x 1 x s1>)19    PseudoRET implicit $v020 21...22---23name:            splatvector_nxv1i1_124legalized:       false25tracksRegLiveness: true26body:             |27  bb.1:28    ; CHECK-LABEL: name: splatvector_nxv1i1_129    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -130    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 1 x s1>) = G_VMSET_VL [[C]](s64)31    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 1 x s1>) = G_VMSET_VL [[C]](s64)32    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 1 x s1>)33    ; CHECK-NEXT: PseudoRET implicit $v034    %0:_(s1) = G_CONSTANT i1 135    %1:_(<vscale x 1 x s1>) = G_SPLAT_VECTOR %0(s1)36    $v0 = COPY %1(<vscale x 1 x s1>)37    PseudoRET implicit $v038 39...40---41name:            splatvector_nxv1i1_242legalized:       false43tracksRegLiveness: true44body:             |45  bb.1:46    liveins: $x1047 48    ; CHECK-LABEL: name: splatvector_nxv1i1_249    ; CHECK: liveins: $x1050    ; CHECK-NEXT: {{  $}}51    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x1052    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 153    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]54    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]55    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 1 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)56    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 057    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 1 x s8>) = G_SPLAT_VECTOR [[C1]](s64)58    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 1 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 1 x s8>), [[SPLAT_VECTOR1]]59    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 1 x s1>)60    ; CHECK-NEXT: PseudoRET implicit $v061    %0:_(s64) = COPY $x1062    %1:_(s1) = G_TRUNC %0(s64)63    %2:_(<vscale x 1 x s1>) = G_SPLAT_VECTOR %1(s1)64    $v0 = COPY %2(<vscale x 1 x s1>)65    PseudoRET implicit $v066...67---68name:            splatvector_nxv2i1_069legalized:       false70tracksRegLiveness: true71body:             |72  bb.1:73    ; CHECK-LABEL: name: splatvector_nxv2i1_074    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -175    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 2 x s1>) = G_VMSET_VL [[C]](s64)76    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 2 x s1>) = G_VMCLR_VL [[C]](s64)77    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 2 x s1>)78    ; CHECK-NEXT: PseudoRET implicit $v079    %0:_(s1) = G_CONSTANT i1 080    %1:_(<vscale x 2 x s1>) = G_SPLAT_VECTOR %0(s1)81    $v0 = COPY %1(<vscale x 2 x s1>)82    PseudoRET implicit $v083 84...85---86name:            splatvector_nxv2i1_187legalized:       false88tracksRegLiveness: true89body:             |90  bb.1:91    ; CHECK-LABEL: name: splatvector_nxv2i1_192    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -193    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 2 x s1>) = G_VMSET_VL [[C]](s64)94    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 2 x s1>) = G_VMSET_VL [[C]](s64)95    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 2 x s1>)96    ; CHECK-NEXT: PseudoRET implicit $v097    %0:_(s1) = G_CONSTANT i1 198    %1:_(<vscale x 2 x s1>) = G_SPLAT_VECTOR %0(s1)99    $v0 = COPY %1(<vscale x 2 x s1>)100    PseudoRET implicit $v0101 102...103---104name:            splatvector_nxv2i1_2105legalized:       false106tracksRegLiveness: true107body:             |108  bb.1:109    liveins: $x10110 111    ; CHECK-LABEL: name: splatvector_nxv2i1_2112    ; CHECK: liveins: $x10113    ; CHECK-NEXT: {{  $}}114    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10115    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1116    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]117    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]118    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 2 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)119    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0120    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 2 x s8>) = G_SPLAT_VECTOR [[C1]](s64)121    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 2 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 2 x s8>), [[SPLAT_VECTOR1]]122    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 2 x s1>)123    ; CHECK-NEXT: PseudoRET implicit $v0124    %0:_(s64) = COPY $x10125    %1:_(s1) = G_TRUNC %0(s64)126    %2:_(<vscale x 2 x s1>) = G_SPLAT_VECTOR %1(s1)127    $v0 = COPY %2(<vscale x 2 x s1>)128    PseudoRET implicit $v0129...130---131name:            splatvector_nxv4i1_0132legalized:       false133tracksRegLiveness: true134body:             |135  bb.1:136    ; CHECK-LABEL: name: splatvector_nxv4i1_0137    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1138    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 4 x s1>) = G_VMSET_VL [[C]](s64)139    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 4 x s1>) = G_VMCLR_VL [[C]](s64)140    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 4 x s1>)141    ; CHECK-NEXT: PseudoRET implicit $v0142    %0:_(s1) = G_CONSTANT i1 0143    %1:_(<vscale x 4 x s1>) = G_SPLAT_VECTOR %0(s1)144    $v0 = COPY %1(<vscale x 4 x s1>)145    PseudoRET implicit $v0146 147...148---149name:            splatvector_nxv4i1_1150legalized:       false151tracksRegLiveness: true152body:             |153  bb.1:154    ; CHECK-LABEL: name: splatvector_nxv4i1_1155    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1156    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 4 x s1>) = G_VMSET_VL [[C]](s64)157    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 4 x s1>) = G_VMSET_VL [[C]](s64)158    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 4 x s1>)159    ; CHECK-NEXT: PseudoRET implicit $v0160    %0:_(s1) = G_CONSTANT i1 1161    %1:_(<vscale x 4 x s1>) = G_SPLAT_VECTOR %0(s1)162    $v0 = COPY %1(<vscale x 4 x s1>)163    PseudoRET implicit $v0164 165...166---167name:            splatvector_nxv4i1_2168legalized:       false169tracksRegLiveness: true170body:             |171  bb.1:172    liveins: $x10173 174    ; CHECK-LABEL: name: splatvector_nxv4i1_2175    ; CHECK: liveins: $x10176    ; CHECK-NEXT: {{  $}}177    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10178    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1179    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]180    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]181    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 4 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)182    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0183    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 4 x s8>) = G_SPLAT_VECTOR [[C1]](s64)184    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 4 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 4 x s8>), [[SPLAT_VECTOR1]]185    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 4 x s1>)186    ; CHECK-NEXT: PseudoRET implicit $v0187    %0:_(s64) = COPY $x10188    %1:_(s1) = G_TRUNC %0(s64)189    %2:_(<vscale x 4 x s1>) = G_SPLAT_VECTOR %1(s1)190    $v0 = COPY %2(<vscale x 4 x s1>)191    PseudoRET implicit $v0192...193---194name:            splatvector_nxv8i1_0195legalized:       false196tracksRegLiveness: true197body:             |198  bb.1:199    ; CHECK-LABEL: name: splatvector_nxv8i1_0200    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1201    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 8 x s1>) = G_VMSET_VL [[C]](s64)202    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 8 x s1>) = G_VMCLR_VL [[C]](s64)203    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 8 x s1>)204    ; CHECK-NEXT: PseudoRET implicit $v0205    %0:_(s1) = G_CONSTANT i1 0206    %1:_(<vscale x 8 x s1>) = G_SPLAT_VECTOR %0(s1)207    $v0 = COPY %1(<vscale x 8 x s1>)208    PseudoRET implicit $v0209 210...211---212name:            splatvector_nxv8i1_1213legalized:       false214tracksRegLiveness: true215body:             |216  bb.1:217    ; CHECK-LABEL: name: splatvector_nxv8i1_1218    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1219    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 8 x s1>) = G_VMSET_VL [[C]](s64)220    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 8 x s1>) = G_VMSET_VL [[C]](s64)221    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 8 x s1>)222    ; CHECK-NEXT: PseudoRET implicit $v0223    %0:_(s1) = G_CONSTANT i1 1224    %1:_(<vscale x 8 x s1>) = G_SPLAT_VECTOR %0(s1)225    $v0 = COPY %1(<vscale x 8 x s1>)226    PseudoRET implicit $v0227 228...229---230name:            splatvector_nxv8i1_2231legalized:       false232tracksRegLiveness: true233body:             |234  bb.1:235    liveins: $x10236 237    ; CHECK-LABEL: name: splatvector_nxv8i1_2238    ; CHECK: liveins: $x10239    ; CHECK-NEXT: {{  $}}240    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10241    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1242    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]243    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]244    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 8 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)245    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0246    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 8 x s8>) = G_SPLAT_VECTOR [[C1]](s64)247    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 8 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 8 x s8>), [[SPLAT_VECTOR1]]248    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 8 x s1>)249    ; CHECK-NEXT: PseudoRET implicit $v0250    %0:_(s64) = COPY $x10251    %1:_(s1) = G_TRUNC %0(s64)252    %2:_(<vscale x 8 x s1>) = G_SPLAT_VECTOR %1(s1)253    $v0 = COPY %2(<vscale x 8 x s1>)254    PseudoRET implicit $v0255...256---257name:            splatvector_nxv16i1_0258legalized:       false259tracksRegLiveness: true260body:             |261  bb.1:262    ; CHECK-LABEL: name: splatvector_nxv16i1_0263    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1264    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 16 x s1>) = G_VMSET_VL [[C]](s64)265    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 16 x s1>) = G_VMCLR_VL [[C]](s64)266    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 16 x s1>)267    ; CHECK-NEXT: PseudoRET implicit $v0268    %0:_(s1) = G_CONSTANT i1 0269    %1:_(<vscale x 16 x s1>) = G_SPLAT_VECTOR %0(s1)270    $v0 = COPY %1(<vscale x 16 x s1>)271    PseudoRET implicit $v0272 273...274---275name:            splatvector_nxv16i1_1276legalized:       false277tracksRegLiveness: true278body:             |279  bb.1:280    ; CHECK-LABEL: name: splatvector_nxv16i1_1281    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1282    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 16 x s1>) = G_VMSET_VL [[C]](s64)283    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 16 x s1>) = G_VMSET_VL [[C]](s64)284    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 16 x s1>)285    ; CHECK-NEXT: PseudoRET implicit $v0286    %0:_(s1) = G_CONSTANT i1 1287    %1:_(<vscale x 16 x s1>) = G_SPLAT_VECTOR %0(s1)288    $v0 = COPY %1(<vscale x 16 x s1>)289    PseudoRET implicit $v0290 291...292---293name:            splatvector_nxv16i1_2294legalized:       false295tracksRegLiveness: true296body:             |297  bb.1:298    liveins: $x10299 300    ; CHECK-LABEL: name: splatvector_nxv16i1_2301    ; CHECK: liveins: $x10302    ; CHECK-NEXT: {{  $}}303    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10304    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1305    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]306    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]307    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 16 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)308    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0309    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 16 x s8>) = G_SPLAT_VECTOR [[C1]](s64)310    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 16 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 16 x s8>), [[SPLAT_VECTOR1]]311    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 16 x s1>)312    ; CHECK-NEXT: PseudoRET implicit $v0313    %0:_(s64) = COPY $x10314    %1:_(s1) = G_TRUNC %0(s64)315    %2:_(<vscale x 16 x s1>) = G_SPLAT_VECTOR %1(s1)316    $v0 = COPY %2(<vscale x 16 x s1>)317    PseudoRET implicit $v0318...319---320name:            splatvector_nxv32i1_0321legalized:       false322tracksRegLiveness: true323body:             |324  bb.1:325    ; CHECK-LABEL: name: splatvector_nxv32i1_0326    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1327    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 32 x s1>) = G_VMSET_VL [[C]](s64)328    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 32 x s1>) = G_VMCLR_VL [[C]](s64)329    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 32 x s1>)330    ; CHECK-NEXT: PseudoRET implicit $v0331    %0:_(s1) = G_CONSTANT i1 0332    %1:_(<vscale x 32 x s1>) = G_SPLAT_VECTOR %0(s1)333    $v0 = COPY %1(<vscale x 32 x s1>)334    PseudoRET implicit $v0335 336...337---338name:            splatvector_nxv32i1_1339legalized:       false340tracksRegLiveness: true341body:             |342  bb.1:343    ; CHECK-LABEL: name: splatvector_nxv32i1_1344    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1345    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 32 x s1>) = G_VMSET_VL [[C]](s64)346    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 32 x s1>) = G_VMSET_VL [[C]](s64)347    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 32 x s1>)348    ; CHECK-NEXT: PseudoRET implicit $v0349    %0:_(s1) = G_CONSTANT i1 1350    %1:_(<vscale x 32 x s1>) = G_SPLAT_VECTOR %0(s1)351    $v0 = COPY %1(<vscale x 32 x s1>)352    PseudoRET implicit $v0353 354...355---356name:            splatvector_nxv32i1_2357legalized:       false358tracksRegLiveness: true359body:             |360  bb.1:361    liveins: $x10362 363    ; CHECK-LABEL: name: splatvector_nxv32i1_2364    ; CHECK: liveins: $x10365    ; CHECK-NEXT: {{  $}}366    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10367    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1368    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]369    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]370    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 32 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)371    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0372    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 32 x s8>) = G_SPLAT_VECTOR [[C1]](s64)373    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 32 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 32 x s8>), [[SPLAT_VECTOR1]]374    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 32 x s1>)375    ; CHECK-NEXT: PseudoRET implicit $v0376    %0:_(s64) = COPY $x10377    %1:_(s1) = G_TRUNC %0(s64)378    %2:_(<vscale x 32 x s1>) = G_SPLAT_VECTOR %1(s1)379    $v0 = COPY %2(<vscale x 32 x s1>)380    PseudoRET implicit $v0381...382---383name:            splatvector_nxv64i1_0384legalized:       false385tracksRegLiveness: true386body:             |387  bb.1:388    ; CHECK-LABEL: name: splatvector_nxv64i1_0389    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1390    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 64 x s1>) = G_VMSET_VL [[C]](s64)391    ; CHECK-NEXT: [[VMCLR_VL:%[0-9]+]]:_(<vscale x 64 x s1>) = G_VMCLR_VL [[C]](s64)392    ; CHECK-NEXT: $v0 = COPY [[VMCLR_VL]](<vscale x 64 x s1>)393    ; CHECK-NEXT: PseudoRET implicit $v0394    %0:_(s1) = G_CONSTANT i1 0395    %1:_(<vscale x 64 x s1>) = G_SPLAT_VECTOR %0(s1)396    $v0 = COPY %1(<vscale x 64 x s1>)397    PseudoRET implicit $v0398 399...400---401name:            splatvector_nxv64i1_1402legalized:       false403tracksRegLiveness: true404body:             |405  bb.1:406    ; CHECK-LABEL: name: splatvector_nxv64i1_1407    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1408    ; CHECK-NEXT: [[VMSET_VL:%[0-9]+]]:_(<vscale x 64 x s1>) = G_VMSET_VL [[C]](s64)409    ; CHECK-NEXT: [[VMSET_VL1:%[0-9]+]]:_(<vscale x 64 x s1>) = G_VMSET_VL [[C]](s64)410    ; CHECK-NEXT: $v0 = COPY [[VMSET_VL1]](<vscale x 64 x s1>)411    ; CHECK-NEXT: PseudoRET implicit $v0412    %0:_(s1) = G_CONSTANT i1 1413    %1:_(<vscale x 64 x s1>) = G_SPLAT_VECTOR %0(s1)414    $v0 = COPY %1(<vscale x 64 x s1>)415    PseudoRET implicit $v0416 417...418---419name:            splatvector_nxv64i1_2420legalized:       false421tracksRegLiveness: true422body:             |423  bb.1:424    liveins: $x10425 426    ; CHECK-LABEL: name: splatvector_nxv64i1_2427    ; CHECK: liveins: $x10428    ; CHECK-NEXT: {{  $}}429    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x10430    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1431    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]432    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[AND]], [[C]]433    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 64 x s8>) = G_SPLAT_VECTOR [[AND1]](s64)434    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 0435    ; CHECK-NEXT: [[SPLAT_VECTOR1:%[0-9]+]]:_(<vscale x 64 x s8>) = G_SPLAT_VECTOR [[C1]](s64)436    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<vscale x 64 x s1>) = G_ICMP intpred(ne), [[SPLAT_VECTOR]](<vscale x 64 x s8>), [[SPLAT_VECTOR1]]437    ; CHECK-NEXT: $v0 = COPY [[ICMP]](<vscale x 64 x s1>)438    ; CHECK-NEXT: PseudoRET implicit $v0439    %0:_(s64) = COPY $x10440    %1:_(s1) = G_TRUNC %0(s64)441    %2:_(<vscale x 64 x s1>) = G_SPLAT_VECTOR %1(s1)442    $v0 = COPY %2(<vscale x 64 x s1>)443    PseudoRET implicit $v0444...445 446---447name:            splatvector_nxv1i8448legalized:       false449tracksRegLiveness: true450body:             |451  bb.1:452    ; CHECK-LABEL: name: splatvector_nxv1i8453    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0454    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 1 x s8>) = G_SPLAT_VECTOR [[C]](s64)455    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s8>)456    ; CHECK-NEXT: PseudoRET implicit $v8457    %0:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF458    %1:_(s8) = G_CONSTANT i8 0459    %2:_(<vscale x 1 x s8>) = G_SPLAT_VECTOR %1(s8)460    $v8 = COPY %2(<vscale x 1 x s8>)461    PseudoRET implicit $v8462 463...464 465---466name:            splatvector_nxv2i8467legalized:       false468tracksRegLiveness: true469body:             |470  bb.1:471    ; CHECK-LABEL: name: splatvector_nxv2i8472    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0473    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 2 x s8>) = G_SPLAT_VECTOR [[C]](s64)474    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s8>)475    ; CHECK-NEXT: PseudoRET implicit $v8476    %0:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF477    %1:_(s8) = G_CONSTANT i8 0478    %2:_(<vscale x 2 x s8>) = G_SPLAT_VECTOR %1(s8)479    $v8 = COPY %2(<vscale x 2 x s8>)480    PseudoRET implicit $v8481 482...483---484name:            splatvector_nxv4i8485legalized:       false486tracksRegLiveness: true487body:             |488  bb.1:489    ; CHECK-LABEL: name: splatvector_nxv4i8490    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0491    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 4 x s8>) = G_SPLAT_VECTOR [[C]](s64)492    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s8>)493    ; CHECK-NEXT: PseudoRET implicit $v8494    %0:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF495    %1:_(s8) = G_CONSTANT i8 0496    %2:_(<vscale x 4 x s8>) = G_SPLAT_VECTOR %1(s8)497    $v8 = COPY %2(<vscale x 4 x s8>)498    PseudoRET implicit $v8499 500...501---502name:            splatvector_nxv8i8503legalized:       false504tracksRegLiveness: true505body:             |506  bb.1:507    ; CHECK-LABEL: name: splatvector_nxv8i8508    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0509    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 8 x s8>) = G_SPLAT_VECTOR [[C]](s64)510    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s8>)511    ; CHECK-NEXT: PseudoRET implicit $v8512    %0:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF513    %1:_(s8) = G_CONSTANT i8 0514    %2:_(<vscale x 8 x s8>) = G_SPLAT_VECTOR %1(s8)515    $v8 = COPY %2(<vscale x 8 x s8>)516    PseudoRET implicit $v8517 518...519---520name:            splatvector_nxv16i8521legalized:       false522tracksRegLiveness: true523body:             |524  bb.1:525    ; CHECK-LABEL: name: splatvector_nxv16i8526    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0527    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 16 x s8>) = G_SPLAT_VECTOR [[C]](s64)528    ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s8>)529    ; CHECK-NEXT: PseudoRET implicit $v8m2530    %0:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF531    %1:_(s8) = G_CONSTANT i8 0532    %2:_(<vscale x 16 x s8>) = G_SPLAT_VECTOR %1(s8)533    $v8m2 = COPY %2(<vscale x 16 x s8>)534    PseudoRET implicit $v8m2535 536...537---538name:            splatvector_nxv1i16539legalized:       false540tracksRegLiveness: true541body:             |542  bb.1:543    ; CHECK-LABEL: name: splatvector_nxv1i16544    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0545    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 1 x s16>) = G_SPLAT_VECTOR [[C]](s64)546    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s16>)547    ; CHECK-NEXT: PseudoRET implicit $v8548    %0:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF549    %1:_(s16) = G_CONSTANT i16 0550    %2:_(<vscale x 1 x s16>) = G_SPLAT_VECTOR %1(s16)551    $v8 = COPY %2(<vscale x 1 x s16>)552    PseudoRET implicit $v8553 554...555---556name:            splatvector_nxv2i16557legalized:       false558tracksRegLiveness: true559body:             |560  bb.1:561    ; CHECK-LABEL: name: splatvector_nxv2i16562    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0563    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 2 x s16>) = G_SPLAT_VECTOR [[C]](s64)564    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s16>)565    ; CHECK-NEXT: PseudoRET implicit $v8566    %0:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF567    %1:_(s16) = G_CONSTANT i16 0568    %2:_(<vscale x 2 x s16>) = G_SPLAT_VECTOR %1(s16)569    $v8 = COPY %2(<vscale x 2 x s16>)570    PseudoRET implicit $v8571 572...573---574name:            splatvector_nxv4i16575legalized:       false576tracksRegLiveness: true577body:             |578  bb.1:579    ; CHECK-LABEL: name: splatvector_nxv4i16580    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0581    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 4 x s16>) = G_SPLAT_VECTOR [[C]](s64)582    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s16>)583    ; CHECK-NEXT: PseudoRET implicit $v8584    %0:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF585    %1:_(s16) = G_CONSTANT i16 0586    %2:_(<vscale x 4 x s16>) = G_SPLAT_VECTOR %1(s16)587    $v8 = COPY %2(<vscale x 4 x s16>)588    PseudoRET implicit $v8589 590...591---592name:            splatvector_nxv8i16593legalized:       false594tracksRegLiveness: true595body:             |596  bb.1:597    ; CHECK-LABEL: name: splatvector_nxv8i16598    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0599    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 8 x s16>) = G_SPLAT_VECTOR [[C]](s64)600    ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s16>)601    ; CHECK-NEXT: PseudoRET implicit $v8m2602    %0:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF603    %1:_(s16) = G_CONSTANT i16 0604    %2:_(<vscale x 8 x s16>) = G_SPLAT_VECTOR %1(s16)605    $v8m2 = COPY %2(<vscale x 8 x s16>)606    PseudoRET implicit $v8m2607 608...609---610name:            splatvector_nxv16i16611legalized:       false612tracksRegLiveness: true613body:             |614  bb.1:615    ; CHECK-LABEL: name: splatvector_nxv16i16616    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0617    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 16 x s16>) = G_SPLAT_VECTOR [[C]](s64)618    ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s16>)619    ; CHECK-NEXT: PseudoRET implicit $v8m4620    %0:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF621    %1:_(s16) = G_CONSTANT i16 0622    %2:_(<vscale x 16 x s16>) = G_SPLAT_VECTOR %1(s16)623    $v8m4 = COPY %2(<vscale x 16 x s16>)624    PseudoRET implicit $v8m4625 626...627---628name:            splatvector_nxv1i32629legalized:       false630tracksRegLiveness: true631body:             |632  bb.1:633    ; CHECK-LABEL: name: splatvector_nxv1i32634    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0635    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 1 x s32>) = G_SPLAT_VECTOR [[C]](s64)636    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s32>)637    ; CHECK-NEXT: PseudoRET implicit $v8638    %0:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF639    %1:_(s32) = G_CONSTANT i32 0640    %2:_(<vscale x 1 x s32>) = G_SPLAT_VECTOR %1(s32)641    $v8 = COPY %2(<vscale x 1 x s32>)642    PseudoRET implicit $v8643 644...645---646name:            splatvector_nxv2i32647legalized:       false648tracksRegLiveness: true649body:             |650  bb.1:651    ; CHECK-LABEL: name: splatvector_nxv2i32652    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0653    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 2 x s32>) = G_SPLAT_VECTOR [[C]](s64)654    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s32>)655    ; CHECK-NEXT: PseudoRET implicit $v8656    %0:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF657    %1:_(s32) = G_CONSTANT i32 0658    %2:_(<vscale x 2 x s32>) = G_SPLAT_VECTOR %1(s32)659    $v8 = COPY %2(<vscale x 2 x s32>)660    PseudoRET implicit $v8661 662...663---664name:            splatvector_nxv4i32665legalized:       false666tracksRegLiveness: true667body:             |668  bb.1:669    ; CHECK-LABEL: name: splatvector_nxv4i32670    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0671    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 4 x s32>) = G_SPLAT_VECTOR [[C]](s64)672    ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s32>)673    ; CHECK-NEXT: PseudoRET implicit $v8m2674    %0:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF675    %1:_(s32) = G_CONSTANT i32 0676    %2:_(<vscale x 4 x s32>) = G_SPLAT_VECTOR %1(s32)677    $v8m2 = COPY %2(<vscale x 4 x s32>)678    PseudoRET implicit $v8m2679 680...681---682name:            splatvector_nxv8i32683legalized:       false684tracksRegLiveness: true685body:             |686  bb.1:687    ; CHECK-LABEL: name: splatvector_nxv8i32688    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0689    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 8 x s32>) = G_SPLAT_VECTOR [[C]](s64)690    ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s32>)691    ; CHECK-NEXT: PseudoRET implicit $v8m4692    %0:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF693    %1:_(s32) = G_CONSTANT i32 0694    %2:_(<vscale x 8 x s32>) = G_SPLAT_VECTOR %1(s32)695    $v8m4 = COPY %2(<vscale x 8 x s32>)696    PseudoRET implicit $v8m4697 698...699---700name:            splatvector_nxv16i32701legalized:       false702tracksRegLiveness: true703body:             |704  bb.1:705    ; CHECK-LABEL: name: splatvector_nxv16i32706    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0707    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 16 x s32>) = G_SPLAT_VECTOR [[C]](s64)708    ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 16 x s32>)709    ; CHECK-NEXT: PseudoRET implicit $v8m8710    %0:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF711    %1:_(s32) = G_CONSTANT i32 0712    %2:_(<vscale x 16 x s32>) = G_SPLAT_VECTOR %1(s32)713    $v8m8 = COPY %2(<vscale x 16 x s32>)714    PseudoRET implicit $v8m8715 716...717---718name:            splatvector_nxv1i64719legalized:       false720tracksRegLiveness: true721body:             |722  bb.1:723    ; CHECK-LABEL: name: splatvector_nxv1i64724    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0725    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 1 x s64>) = G_SPLAT_VECTOR [[C]](s64)726    ; CHECK-NEXT: $v8 = COPY [[SPLAT_VECTOR]](<vscale x 1 x s64>)727    ; CHECK-NEXT: PseudoRET implicit $v8728    %0:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF729    %1:_(s64) = G_CONSTANT i64 0730    %2:_(<vscale x 1 x s64>) = G_SPLAT_VECTOR %1(s64)731    $v8 = COPY %2(<vscale x 1 x s64>)732    PseudoRET implicit $v8733 734...735---736name:            splatvector_nxv2i64737legalized:       false738tracksRegLiveness: true739body:             |740  bb.1:741    ; CHECK-LABEL: name: splatvector_nxv2i64742    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0743    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR [[C]](s64)744    ; CHECK-NEXT: $v8m2 = COPY [[SPLAT_VECTOR]](<vscale x 2 x s64>)745    ; CHECK-NEXT: PseudoRET implicit $v8m2746    %0:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF747    %1:_(s64) = G_CONSTANT i64 0748    %2:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %1(s64)749    $v8m2 = COPY %2(<vscale x 2 x s64>)750    PseudoRET implicit $v8m2751 752...753---754name:            splatvector_nxv4i64755legalized:       false756tracksRegLiveness: true757body:             |758  bb.1:759    ; CHECK-LABEL: name: splatvector_nxv4i64760    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0761    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 4 x s64>) = G_SPLAT_VECTOR [[C]](s64)762    ; CHECK-NEXT: $v8m4 = COPY [[SPLAT_VECTOR]](<vscale x 4 x s64>)763    ; CHECK-NEXT: PseudoRET implicit $v8m4764    %0:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF765    %1:_(s64) = G_CONSTANT i64 0766    %2:_(<vscale x 4 x s64>) = G_SPLAT_VECTOR %1(s64)767    $v8m4 = COPY %2(<vscale x 4 x s64>)768    PseudoRET implicit $v8m4769 770...771---772name:            splatvector_nxv8i64773legalized:       false774tracksRegLiveness: true775body:             |776  bb.1:777    ; CHECK-LABEL: name: splatvector_nxv8i64778    ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0779    ; CHECK-NEXT: [[SPLAT_VECTOR:%[0-9]+]]:_(<vscale x 8 x s64>) = G_SPLAT_VECTOR [[C]](s64)780    ; CHECK-NEXT: $v8m8 = COPY [[SPLAT_VECTOR]](<vscale x 8 x s64>)781    ; CHECK-NEXT: PseudoRET implicit $v8m8782    %0:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF783    %1:_(s64) = G_CONSTANT i64 0784    %2:_(<vscale x 8 x s64>) = G_SPLAT_VECTOR %1(s64)785    $v8m8 = COPY %2(<vscale x 8 x s64>)786    PseudoRET implicit $v8m8787 788...789