brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · 205c32f Raw
272 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name:            test_scalar_sub_big6body:             |7  bb.0.entry:8    ; CHECK-LABEL: name: test_scalar_sub_big9    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x010    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x111    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x212    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x313    ; CHECK-NEXT: [[USUBO:%[0-9]+]]:_(s64), [[USUBO1:%[0-9]+]]:_(s32) = G_USUBO [[COPY]], [[COPY2]]14    ; CHECK-NEXT: [[USUBE:%[0-9]+]]:_(s64), [[USUBE1:%[0-9]+]]:_(s32) = G_USUBE [[COPY1]], [[COPY3]], [[USUBO1]]15    ; CHECK-NEXT: $x0 = COPY [[USUBO]](s64)16    ; CHECK-NEXT: $x1 = COPY [[USUBE]](s64)17    %0:_(s64) = COPY $x018    %1:_(s64) = COPY $x119    %2:_(s64) = COPY $x220    %3:_(s64) = COPY $x321    %4:_(s128) = G_MERGE_VALUES %0(s64), %1(s64)22    %5:_(s128) = G_MERGE_VALUES %2(s64), %3(s64)23    %6:_(s128) = G_SUB %4, %524    %7:_(s64), %8:_(s64) = G_UNMERGE_VALUES %6(s128)25    $x0 = COPY %7(s64)26    $x1 = COPY %8(s64)27 28...29---30name:            test_scalar_sub_big_nonpow231body:             |32  bb.0.entry:33    ; CHECK-LABEL: name: test_scalar_sub_big_nonpow234    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x035    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x136    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x237    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x338    ; CHECK-NEXT: [[USUBO:%[0-9]+]]:_(s64), [[USUBO1:%[0-9]+]]:_(s32) = G_USUBO [[COPY]], [[COPY1]]39    ; CHECK-NEXT: [[USUBE:%[0-9]+]]:_(s64), [[USUBE1:%[0-9]+]]:_(s32) = G_USUBE [[COPY1]], [[COPY2]], [[USUBO1]]40    ; CHECK-NEXT: [[USUBE2:%[0-9]+]]:_(s64), [[USUBE3:%[0-9]+]]:_(s32) = G_USUBE [[COPY2]], [[COPY3]], [[USUBE1]]41    ; CHECK-NEXT: $x0 = COPY [[USUBO]](s64)42    ; CHECK-NEXT: $x1 = COPY [[USUBE]](s64)43    ; CHECK-NEXT: $x2 = COPY [[USUBE2]](s64)44    %0:_(s64) = COPY $x045    %1:_(s64) = COPY $x146    %2:_(s64) = COPY $x247    %3:_(s64) = COPY $x348    %4:_(s192) = G_MERGE_VALUES %0(s64), %1(s64), %2(s64)49    %5:_(s192) = G_MERGE_VALUES %1(s64), %2(s64), %3(s64)50    %6:_(s192) = G_SUB %4, %551    %7:_(s64), %8:_(s64), %9:_(s64) = G_UNMERGE_VALUES %6(s192)52    $x0 = COPY %7(s64)53    $x1 = COPY %8(s64)54    $x2 = COPY %9(s64)55 56...57---58name:            test_scalar_sub_small59body:             |60  bb.0.entry:61    ; CHECK-LABEL: name: test_scalar_sub_small62    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x063    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x164    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)65    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)66    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[TRUNC]], [[TRUNC1]]67    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SUB]](s32)68    ; CHECK-NEXT: $x0 = COPY [[ANYEXT]](s64)69    %0:_(s64) = COPY $x070    %1:_(s64) = COPY $x171    %2:_(s8) = G_TRUNC %0(s64)72    %3:_(s8) = G_TRUNC %1(s64)73    %4:_(s8) = G_SUB %2, %374    %5:_(s64) = G_ANYEXT %4(s8)75    $x0 = COPY %5(s64)76 77...78---79name:            test_vector_sub_v16s1680body:             |81  bb.0.entry:82    ; CHECK-LABEL: name: test_vector_sub_v16s1683    ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q084    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s16>) = COPY $q185    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<8 x s16>) = G_SUB [[COPY]], [[COPY]]86    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(<8 x s16>) = G_SUB [[COPY1]], [[COPY1]]87    ; CHECK-NEXT: $q0 = COPY [[SUB]](<8 x s16>)88    ; CHECK-NEXT: $q1 = COPY [[SUB1]](<8 x s16>)89    %1:_(<8 x s16>) = COPY $q090    %2:_(<8 x s16>) = COPY $q191    %0:_(<16 x s16>) = G_CONCAT_VECTORS %1(<8 x s16>), %2(<8 x s16>)92    %3:_(<16 x s16>) = G_SUB %0, %093    %4:_(<8 x s16>), %5:_(<8 x s16>) = G_UNMERGE_VALUES %3(<16 x s16>)94    $q0 = COPY %4(<8 x s16>)95    $q1 = COPY %5(<8 x s16>)96 97...98---99name:            test_vector_sub_v32s8100body:             |101  bb.0.entry:102    ; CHECK-LABEL: name: test_vector_sub_v32s8103    ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0104    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1105    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<16 x s8>) = G_SUB [[COPY]], [[COPY]]106    ; CHECK-NEXT: [[SUB1:%[0-9]+]]:_(<16 x s8>) = G_SUB [[COPY1]], [[COPY1]]107    ; CHECK-NEXT: $q0 = COPY [[SUB]](<16 x s8>)108    ; CHECK-NEXT: $q1 = COPY [[SUB1]](<16 x s8>)109    %0:_(<16 x s8>) = COPY $q0110    %1:_(<16 x s8>) = COPY $q1111    %2:_(<32 x s8>) = G_CONCAT_VECTORS %0, %1112    %3:_(<32 x s8>) = G_SUB %2, %2113    %7:_(<16 x s8>), %8:_(<16 x s8>) = G_UNMERGE_VALUES %3(<32 x s8>)114    $q0 = COPY %7(<16 x s8>)115    $q1 = COPY %8(<16 x s8>)116 117...118---119name:            sub_v2s1120tracksRegLiveness: true121body:             |122  bb.1:123    liveins: $d0, $d1, $d2, $d3124 125    ; CHECK-LABEL: name: sub_v2s1126    ; CHECK: liveins: $d0, $d1, $d2, $d3127    ; CHECK-NEXT: {{  $}}128    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0129    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $d1130    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $d2131    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s32>) = COPY $d3132    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY]](<2 x s32>), [[COPY1]]133    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<2 x s32>) = G_ICMP intpred(eq), [[COPY2]](<2 x s32>), [[COPY3]]134    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<2 x s32>) = G_SUB [[ICMP]], [[ICMP1]]135    ; CHECK-NEXT: $d0 = COPY [[SUB]](<2 x s32>)136    ; CHECK-NEXT: RET_ReallyLR implicit $d0137    %0:_(<2 x s32>) = COPY $d0138    %1:_(<2 x s32>) = COPY $d1139    %2:_(<2 x s32>) = COPY $d2140    %3:_(<2 x s32>) = COPY $d3141    %4:_(<2 x s1>) = G_ICMP intpred(eq), %0(<2 x s32>), %1142    %5:_(<2 x s1>) = G_ICMP intpred(eq), %2(<2 x s32>), %3143    %6:_(<2 x s1>) = G_SUB %4, %5144    %7:_(<2 x s32>) = G_ANYEXT %6145    $d0 = COPY %7:_(<2 x s32>)146    RET_ReallyLR implicit $d0147...148---149name:            sub_v3s1150tracksRegLiveness: true151body:             |152  bb.1:153    liveins: $b0, $b1, $b2154 155    ; CHECK-LABEL: name: sub_v3s1156    ; CHECK: liveins: $b0, $b1, $b2157    ; CHECK-NEXT: {{  $}}158    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $b0159    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s8) = COPY $b1160    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s8) = COPY $b2161    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)162    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY1]](s8)163    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY2]](s8)164    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF165    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s16>) = G_BUILD_VECTOR [[ANYEXT]](s16), [[ANYEXT1]](s16), [[ANYEXT2]](s16), [[DEF]](s16)166    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<4 x s16>) = G_SUB [[BUILD_VECTOR]], [[BUILD_VECTOR]]167    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16), [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[SUB]](<4 x s16>)168    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[UV]](s16)169    ; CHECK-NEXT: $b0 = COPY [[TRUNC]](s8)170    ; CHECK-NEXT: RET_ReallyLR implicit $b0171    %1:_(s8) = COPY $b0172    %2:_(s8) = COPY $b1173    %3:_(s8) = COPY $b2174    %4:_(<3 x s8>) = G_BUILD_VECTOR %1(s8), %2(s8), %3(s8)175    %0:_(<3 x s1>) = G_TRUNC %4(<3 x s8>)176    %5:_(<3 x s1>) = G_SUB %0, %0177    %7:_(<3 x s8>) = G_ANYEXT %5(<3 x s1>)178    %8:_(s8), %9:_(s8), %10:_(s8) = G_UNMERGE_VALUES %7(<3 x s8>)179    $b0 = COPY %8:_(s8)180    RET_ReallyLR implicit $b0181...182---183name:            sub_v4s1184tracksRegLiveness: true185body:             |186  bb.1:187    liveins: $d0, $d1, $d2, $d3188 189    ; CHECK-LABEL: name: sub_v4s1190    ; CHECK: liveins: $d0, $d1, $d2, $d3191    ; CHECK-NEXT: {{  $}}192    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0193    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $d1194    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY $d2195    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<4 x s16>) = COPY $d3196    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY]](<4 x s16>), [[COPY1]]197    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<4 x s16>) = G_ICMP intpred(eq), [[COPY2]](<4 x s16>), [[COPY3]]198    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<4 x s16>) = G_SUB [[ICMP]], [[ICMP1]]199    ; CHECK-NEXT: $d0 = COPY [[SUB]](<4 x s16>)200    ; CHECK-NEXT: RET_ReallyLR implicit $d0201    %0:_(<4 x s16>) = COPY $d0202    %1:_(<4 x s16>) = COPY $d1203    %2:_(<4 x s16>) = COPY $d2204    %3:_(<4 x s16>) = COPY $d3205    %4:_(<4 x s1>) = G_ICMP intpred(eq), %0(<4 x s16>), %1206    %5:_(<4 x s1>) = G_ICMP intpred(eq), %2(<4 x s16>), %3207    %6:_(<4 x s1>) = G_SUB %4, %5208    %7:_(<4 x s16>) = G_ANYEXT %6209    $d0 = COPY %7:_(<4 x s16>)210    RET_ReallyLR implicit $d0211...212---213name:            sub_v8s1214tracksRegLiveness: true215body:             |216  bb.1:217    liveins: $d0, $d1, $d2, $d3218 219    ; CHECK-LABEL: name: sub_v8s1220    ; CHECK: liveins: $d0, $d1, $d2, $d3221    ; CHECK-NEXT: {{  $}}222    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d0223    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s8>) = COPY $d1224    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<8 x s8>) = COPY $d2225    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<8 x s8>) = COPY $d3226    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY]](<8 x s8>), [[COPY1]]227    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<8 x s8>) = G_ICMP intpred(eq), [[COPY2]](<8 x s8>), [[COPY3]]228    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<8 x s8>) = G_SUB [[ICMP]], [[ICMP1]]229    ; CHECK-NEXT: $d0 = COPY [[SUB]](<8 x s8>)230    ; CHECK-NEXT: RET_ReallyLR implicit $d0231    %0:_(<8 x s8>) = COPY $d0232    %1:_(<8 x s8>) = COPY $d1233    %2:_(<8 x s8>) = COPY $d2234    %3:_(<8 x s8>) = COPY $d3235    %4:_(<8 x s1>) = G_ICMP intpred(eq), %0(<8 x s8>), %1236    %5:_(<8 x s1>) = G_ICMP intpred(eq), %2(<8 x s8>), %3237    %6:_(<8 x s1>) = G_SUB %4, %5238    %7:_(<8 x s8>) = G_ANYEXT %6239    $d0 = COPY %7:_(<8 x s8>)240    RET_ReallyLR implicit $d0241...242---243name:            sub_v16s1244tracksRegLiveness: true245body:             |246  bb.1:247    liveins: $q0, $q1, $q2, $q3248 249    ; CHECK-LABEL: name: sub_v16s1250    ; CHECK: liveins: $q0, $q1, $q2, $q3251    ; CHECK-NEXT: {{  $}}252    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0253    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<16 x s8>) = COPY $q1254    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<16 x s8>) = COPY $q2255    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<16 x s8>) = COPY $q3256    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY]](<16 x s8>), [[COPY1]]257    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(<16 x s8>) = G_ICMP intpred(eq), [[COPY2]](<16 x s8>), [[COPY3]]258    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(<16 x s8>) = G_SUB [[ICMP]], [[ICMP1]]259    ; CHECK-NEXT: $q0 = COPY [[SUB]](<16 x s8>)260    ; CHECK-NEXT: RET_ReallyLR implicit $q0261    %0:_(<16 x s8>) = COPY $q0262    %1:_(<16 x s8>) = COPY $q1263    %2:_(<16 x s8>) = COPY $q2264    %3:_(<16 x s8>) = COPY $q3265    %4:_(<16 x s1>) = G_ICMP intpred(eq), %0(<16 x s8>), %1266    %5:_(<16 x s1>) = G_ICMP intpred(eq), %2(<16 x s8>), %3267    %6:_(<16 x s1>) = G_SUB %4, %5268    %7:_(<16 x s8>) = G_ANYEXT %6269    $q0 = COPY %7:_(<16 x s8>)270    RET_ReallyLR implicit $q0271...272