brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.9 KiB · d535671 Raw
472 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -debugify-and-strip-all-safe -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s3---4# icmp (x, 1) && icmp (x, 2) -> x5name:            test_icmp_and_icmp6body:             |7  bb.1:8    liveins: $x0, $x19    ; CHECK-LABEL: name: test_icmp_and_icmp10    ; CHECK: liveins: $x0, $x111    ; CHECK-NEXT: {{  $}}12    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x013    ; CHECK-NEXT: %one:_(s64) = G_CONSTANT i64 114    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s64), %one15    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[ICMP]](s1)16    ; CHECK-NEXT: $x0 = COPY %zext(s64)17    %0:_(s64) = COPY $x018    %1:_(s64) = COPY $x119    %2:_(s64) = COPY $x220    %one:_(s64) = G_CONSTANT i64 121    %two:_(s64) = G_CONSTANT i64 222    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %one23    %cmp2:_(s1) = G_ICMP intpred(ne), %0(s64), %two24    %and:_(s1) = G_AND %cmp1, %cmp225    %zext:_(s64) = G_ZEXT %and(s1)26    $x0 = COPY %zext27...28---29# multi use icmp (x, 1) && icmp (x, 2) -> x30name:            multi_use_test_icmp_and_icmp31body:             |32  bb.1:33    liveins: $x0, $x134    ; CHECK-LABEL: name: multi_use_test_icmp_and_icmp35    ; CHECK: liveins: $x0, $x136    ; CHECK-NEXT: {{  $}}37    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x038    ; CHECK-NEXT: %one:_(s64) = G_CONSTANT i64 139    ; CHECK-NEXT: %two:_(s64) = G_CONSTANT i64 240    ; CHECK-NEXT: %cmp1:_(s1) = G_ICMP intpred(eq), [[COPY]](s64), %one41    ; CHECK-NEXT: %cmp2:_(s1) = G_ICMP intpred(ne), [[COPY]](s64), %two42    ; CHECK-NEXT: %and:_(s1) = G_AND %cmp1, %cmp243    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT %and(s1)44    ; CHECK-NEXT: %cmp1zext:_(s64) = G_ZEXT %cmp1(s1)45    ; CHECK-NEXT: $x0 = COPY %zext(s64)46    ; CHECK-NEXT: $x0 = COPY %cmp1zext(s64)47    %0:_(s64) = COPY $x048    %1:_(s64) = COPY $x149    %2:_(s64) = COPY $x250    %one:_(s64) = G_CONSTANT i64 151    %two:_(s64) = G_CONSTANT i64 252    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %one53    %cmp2:_(s1) = G_ICMP intpred(ne), %0(s64), %two54    %and:_(s1) = G_AND %cmp1, %cmp255    %zext:_(s64) = G_ZEXT %and(s1)56    %cmp1zext:_(s64) = G_ZEXT %cmp1(s1)57    $x0 = COPY %zext58    $x0 = COPY %cmp1zext59...60---61# icmp (x, 1) && icmp (x, add(x, 2)) -> x62name:            test_icmp_and_icmp_with_add63body:             |64  bb.1:65    liveins: $x0, $x166    ; CHECK-LABEL: name: test_icmp_and_icmp_with_add67    ; CHECK: liveins: $x0, $x168    ; CHECK-NEXT: {{  $}}69    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x070    ; CHECK-NEXT: %one:_(s64) = G_CONSTANT i64 171    ; CHECK-NEXT: %cmp1:_(s1) = G_ICMP intpred(eq), [[COPY]](s64), %one72    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT %cmp1(s1)73    ; CHECK-NEXT: $x0 = COPY %zext(s64)74    %0:_(s64) = COPY $x075    %1:_(s64) = COPY $x176    %2:_(s64) = COPY $x277    %one:_(s64) = G_CONSTANT i64 178    %two:_(s64) = G_CONSTANT i64 279    %add:_(s64) = G_ADD %0(s64), %two80    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %one81    %cmp2:_(s1) = G_ICMP intpred(ne), %0(s64), %add82    %and:_(s1) = G_AND %cmp1, %cmp283    %zext:_(s64) = G_ZEXT %and(s1)84    $x0 = COPY %zext85...86---87# icmp (x, 1) && icmp (x, add(x, 2000)) -> x88name:            test_icmp_or_icmp_with_add_200089body:             |90  bb.1:91    liveins: $x0, $x192    ; CHECK-LABEL: name: test_icmp_or_icmp_with_add_200093    ; CHECK: liveins: $x0, $x194    ; CHECK-NEXT: {{  $}}95    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x096    ; CHECK-NEXT: %one:_(s64) = G_CONSTANT i64 -10097    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(eq), [[COPY]](s64), %one98    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[ICMP]](s1)99    ; CHECK-NEXT: $x0 = COPY %zext(s64)100    %0:_(s64) = COPY $x0101    %1:_(s64) = COPY $x1102    %2:_(s64) = COPY $x2103    %one:_(s64) = G_CONSTANT i64 -100104    %two:_(s64) = G_CONSTANT i64 2000105    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %one106    %cmp2:_(s1) = G_ICMP intpred(ne), %0(s64), %two107    %or:_(s1) = G_AND %cmp1, %cmp2108    %zext:_(s64) = G_ZEXT %or(s1)109    $x0 = COPY %zext110...111---112# icmp (x, -100) || icmp (x, 2000) -> x113name:            test_icmp_or_icmp114body:             |115  bb.1:116    liveins: $x0, $x1117    ; CHECK-LABEL: name: test_icmp_or_icmp118    ; CHECK: liveins: $x0, $x1119    ; CHECK-NEXT: {{  $}}120    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0121    ; CHECK-NEXT: %two:_(s64) = G_CONSTANT i64 2000122    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s64), %two123    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[ICMP]](s1)124    ; CHECK-NEXT: $x0 = COPY %zext(s64)125    %0:_(s64) = COPY $x0126    %1:_(s64) = COPY $x1127    %2:_(s64) = COPY $x2128    %one:_(s64) = G_CONSTANT i64 -100129    %two:_(s64) = G_CONSTANT i64 2000130    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %one131    %cmp2:_(s1) = G_ICMP intpred(ne), %0(s64), %two132    %or:_(s1) = G_OR %cmp1, %cmp2133    %zext:_(s64) = G_ZEXT %or(s1)134    $x0 = COPY %zext135...136---137# offset icmp (x, -100) || icmp (x, 2000) -> x138name:            test_icmp_or_icmp_offset139body:             |140  bb.1:141    liveins: $x0, $x1142    ; CHECK-LABEL: name: test_icmp_or_icmp_offset143    ; CHECK: liveins: $x0, $x1144    ; CHECK-NEXT: {{  $}}145    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0146    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -2001147    ; CHECK-NEXT: [[ADD:%[0-9]+]]:_(s64) = G_ADD [[COPY]], [[C]]148    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -2101149    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ult), [[ADD]](s64), [[C1]]150    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[ICMP]](s1)151    ; CHECK-NEXT: $x0 = COPY %zext(s64)152    %0:_(s64) = COPY $x0153    %1:_(s64) = COPY $x1154    %2:_(s64) = COPY $x2155    %one:_(s64) = G_CONSTANT i64 -100156    %two:_(s64) = G_CONSTANT i64 2000157    %cmp1:_(s1) = G_ICMP intpred(slt), %0(s64), %one158    %cmp2:_(s1) = G_ICMP intpred(sgt), %0(s64), %two159    %or:_(s1) = G_OR %cmp1, %cmp2160    %zext:_(s64) = G_ZEXT %or(s1)161    $x0 = COPY %zext162...163---164# icmp (x, add(x, 9) || icmp (x, add(x, 2)) -> x165name:            test_icmp_or_icmp_with_add_and_add166body:             |167  bb.1:168    liveins: $x0, $x1169    ; CHECK-LABEL: name: test_icmp_or_icmp_with_add_and_add170    ; CHECK: liveins: $x0, $x1171    ; CHECK-NEXT: {{  $}}172    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0173    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1174    ; CHECK-NEXT: %two:_(s64) = G_CONSTANT i64 2175    ; CHECK-NEXT: %add2:_(s64) = G_ADD [[COPY]], %two176    ; CHECK-NEXT: %cmp2:_(s1) = G_ICMP intpred(ne), [[COPY1]](s64), %add2177    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT %cmp2(s1)178    ; CHECK-NEXT: $x0 = COPY %zext(s64)179    %0:_(s64) = COPY $x0180    %1:_(s64) = COPY $x1181    %2:_(s64) = COPY $x2182    %nine:_(s64) = G_CONSTANT i64 9183    %two:_(s64) = G_CONSTANT i64 2184    %add1:_(s64) = G_ADD %0(s64), %nine185    %add2:_(s64) = G_ADD %0(s64), %two186    %cmp1:_(s1) = G_ICMP intpred(eq), %0(s64), %add1187    %cmp2:_(s1) = G_ICMP intpred(ne), %1(s64), %add2188    %and:_(s1) = G_OR %cmp1, %cmp2189    %zext:_(s64) = G_ZEXT %and(s1)190    $x0 = COPY %zext191...192---193# icmp (x, 9) && icmp (x, 2)) -> x194# buildConstant 0195# buildICmp ult, R1, NewC196# buildZExtOrTrunc -> COPY197# erase G_AND198# x > 9 && x < 2 => false199name:            test_icmp_and_icmp_9_2200body:             |201  bb.1:202    liveins: $x0, $x1203    ; CHECK-LABEL: name: test_icmp_and_icmp_9_2204    ; CHECK: liveins: $x0, $x1205    ; CHECK-NEXT: {{  $}}206    ; CHECK-NEXT: %zext:_(s64) = G_CONSTANT i64 0207    ; CHECK-NEXT: $x0 = COPY %zext(s64)208    %0:_(s64) = COPY $x0209    %nine:_(s64) = G_CONSTANT i64 9210    %two:_(s64) = G_CONSTANT i64 2211    %cmp1:_(s1) = G_ICMP intpred(sgt), %0(s64), %nine212    %cmp2:_(s1) = G_ICMP intpred(slt), %0(s64), %two213    %and:_(s1) = G_AND %cmp1, %cmp2214    %zext:_(s64) = G_ZEXT %and(s1)215    $x0 = COPY %zext216...217---218# icmp (x, v1) && icmp (x, v2)) -> x219name:            test_icmp_and_icmp_with_vectors220body:             |221  bb.1:222    liveins: $x0, $x1223    ; CHECK-LABEL: name: test_icmp_and_icmp_with_vectors224    ; CHECK: liveins: $x0, $x1225    ; CHECK-NEXT: {{  $}}226    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0227    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1228    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $x2229    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $x3230    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $x4231    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $x5232    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $x6233    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $x7234    ; CHECK-NEXT: %v1:_(<2 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64)235    ; CHECK-NEXT: %v2:_(<2 x s64>) = G_BUILD_VECTOR [[COPY2]](s64), [[COPY3]](s64)236    ; CHECK-NEXT: %v3:_(<2 x s64>) = G_BUILD_VECTOR [[COPY4]](s64), [[COPY5]](s64)237    ; CHECK-NEXT: %v4:_(<2 x s64>) = G_BUILD_VECTOR [[COPY6]](s64), [[COPY7]](s64)238    ; CHECK-NEXT: %cmp1:_(<2 x s1>) = G_ICMP intpred(ne), %v1(<2 x s64>), %v2239    ; CHECK-NEXT: %cmp2:_(<2 x s1>) = G_ICMP intpred(eq), %v3(<2 x s64>), %v4240    ; CHECK-NEXT: %and:_(<2 x s1>) = G_AND %cmp1, %cmp2241    ; CHECK-NEXT: %zext:_(<2 x s64>) = G_ZEXT %and(<2 x s1>)242    ; CHECK-NEXT: $q0 = COPY %zext(<2 x s64>)243    %0:_(s64) = COPY $x0244    %1:_(s64) = COPY $x1245    %2:_(s64) = COPY $x2246    %3:_(s64) = COPY $x3247    %4:_(s64) = COPY $x4248    %5:_(s64) = COPY $x5249    %6:_(s64) = COPY $x6250    %7:_(s64) = COPY $x7251    %nine:_(s64) = G_CONSTANT i64 9252    %two:_(s64) = G_CONSTANT i64 2253    %v1:_(<2 x s64>) = G_BUILD_VECTOR %0(s64), %1(s64)254    %v2:_(<2 x s64>) = G_BUILD_VECTOR %2(s64), %3(s64)255    %v3:_(<2 x s64>) = G_BUILD_VECTOR %4(s64), %5(s64)256    %v4:_(<2 x s64>) = G_BUILD_VECTOR %6(s64), %7(s64)257    %cmp1:_(<2 x s1>) = G_ICMP intpred(ne), %v1(<2 x s64>), %v2258    %cmp2:_(<2 x s1>) = G_ICMP intpred(eq), %v3(<2 x s64>), %v4259    %and:_(<2 x s1>) = G_AND %cmp1, %cmp2260    %zext:_(<2 x s64>) = G_ZEXT %and(<2 x s1>)261    $q0 = COPY %zext262...263---264# fcmp (x, y) || fcmp (x, y) -> fcmp(x, y)265name:            test_fcmp_or_fcmp_with_x_y266body:             |267  bb.1:268    liveins: $x0, $x1269    ; CHECK-LABEL: name: test_fcmp_or_fcmp_with_x_y270    ; CHECK: liveins: $x0, $x1271    ; CHECK-NEXT: {{  $}}272    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0273    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1274    ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ueq), [[COPY]](s64), [[COPY1]]275    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[FCMP]](s1)276    ; CHECK-NEXT: $x0 = COPY %zext(s64)277    %0:_(s64) = COPY $x0278    %1:_(s64) = COPY $x1279    %cmp1:_(s1) = G_FCMP floatpred(oeq), %0(s64), %1280    %cmp2:_(s1) = G_FCMP floatpred(uno), %0(s64), %1281    %or:_(s1) = G_OR %cmp1, %cmp2282    %zext:_(s64) = G_ZEXT %or(s1)283    $x0 = COPY %zext284...285---286# fcmp (5, y) || fcmp (y, 5) -> fcmp(x, y)287name:            test_fcmp_or_fcmp_with_5_y288body:             |289  bb.1:290    liveins: $x0, $x1291    ; CHECK-LABEL: name: test_fcmp_or_fcmp_with_5_y292    ; CHECK: liveins: $x0, $x1293    ; CHECK-NEXT: {{  $}}294    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0295    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 5.000000e+00296    ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(une), [[COPY]](s64), [[C]]297    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[FCMP]](s1)298    ; CHECK-NEXT: $x0 = COPY %zext(s64)299    %0:_(s64) = COPY $x0300    %1:_(s64) = COPY $x1301    %2:_(s64) = G_FCONSTANT double 5.0302    %cmp1:_(s1) = G_FCMP floatpred(one), %0(s64), %2303    %cmp2:_(s1) = G_FCMP floatpred(uno), %0(s64), %2304    %or:_(s1) = G_OR %cmp1, %cmp2305    %zext:_(s64) = G_ZEXT %or(s1)306    $x0 = COPY %zext307...308---309# fcmp (x, y) || fcmp (y, x) -> fcmp(x, y)310name:            test_fcmp_or_fcmp_with_anti311body:             |312  bb.1:313    liveins: $x0, $x1314    ; CHECK-LABEL: name: test_fcmp_or_fcmp_with_anti315    ; CHECK: liveins: $x0, $x1316    ; CHECK-NEXT: {{  $}}317    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0318    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1319    ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(une), [[COPY1]](s64), [[COPY]]320    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[FCMP]](s1)321    ; CHECK-NEXT: $x0 = COPY %zext(s64)322    %0:_(s64) = COPY $x0323    %1:_(s64) = COPY $x1324    %cmp1:_(s1) = G_FCMP floatpred(one), %1(s64), %0325    %cmp2:_(s1) = G_FCMP floatpred(uno), %0(s64), %1326    %or:_(s1) = G_OR %cmp1, %cmp2327    %zext:_(s64) = G_ZEXT %or(s1)328    $x0 = COPY %zext329...330---331# fcmp (x, y) && fcmp (x, y) -> fcmp(x, y)332name:            test_fcmp_and_fcmp_with_x_y333body:             |334  bb.1:335    liveins: $x0, $x1336    ; CHECK-LABEL: name: test_fcmp_and_fcmp_with_x_y337    ; CHECK: liveins: $x0, $x1338    ; CHECK-NEXT: {{  $}}339    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0340    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1341    ; CHECK-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(uno), [[COPY1]](s64), [[COPY]]342    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT [[FCMP]](s1)343    ; CHECK-NEXT: $x0 = COPY %zext(s64)344    %0:_(s64) = COPY $x0345    %1:_(s64) = COPY $x1346    %cmp1:_(s1) = G_FCMP floatpred(une), %1(s64), %0347    %cmp2:_(s1) = G_FCMP floatpred(uno), %0(s64), %1348    %and:_(s1) = G_AND %cmp1, %cmp2349    %zext:_(s64) = G_ZEXT %and(s1)350    $x0 = COPY %zext351...352---353# fcmp (x, y) && fcmp (x, y) -> fcmp(x, y)354name:            test_fcmp_and_fcmp_with_x_y_multi_use355body:             |356  bb.1:357    liveins: $x0, $x1358    ; CHECK-LABEL: name: test_fcmp_and_fcmp_with_x_y_multi_use359    ; CHECK: liveins: $x0, $x1360    ; CHECK-NEXT: {{  $}}361    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0362    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1363    ; CHECK-NEXT: %cmp1:_(s1) = G_FCMP floatpred(ogt), [[COPY1]](s64), [[COPY]]364    ; CHECK-NEXT: %cmp2:_(s1) = G_FCMP floatpred(ugt), [[COPY]](s64), [[COPY1]]365    ; CHECK-NEXT: %and:_(s1) = G_AND %cmp1, %cmp2366    ; CHECK-NEXT: %zext:_(s64) = G_ZEXT %and(s1)367    ; CHECK-NEXT: %zext2:_(s64) = G_ZEXT %and(s1)368    ; CHECK-NEXT: $x0 = COPY %zext(s64)369    ; CHECK-NEXT: $x2 = COPY %zext2(s64)370    %0:_(s64) = COPY $x0371    %1:_(s64) = COPY $x1372    %cmp1:_(s1) = G_FCMP floatpred(ogt), %1(s64), %0373    %cmp2:_(s1) = G_FCMP floatpred(ugt), %0(s64), %1374    %and:_(s1) = G_AND %cmp1, %cmp2375    %zext:_(s64) = G_ZEXT %and(s1)376    %zext2:_(s64) = G_ZEXT %and(s1)377    $x0 = COPY %zext378    $x2 = COPY %zext2379...380---381# fcmp (x, y) && fcmp (x, y) -> fcmp(x, y)382name:            test_fcmp_and_fcmp_with_vectors383body:             |384  bb.1:385    liveins: $x0, $x1386    ; CHECK-LABEL: name: test_fcmp_and_fcmp_with_vectors387    ; CHECK: liveins: $x0, $x1388    ; CHECK-NEXT: {{  $}}389    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false390    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1)391    ; CHECK-NEXT: %zext:_(<2 x s64>) = G_ZEXT [[BUILD_VECTOR]](<2 x s1>)392    ; CHECK-NEXT: $q0 = COPY %zext(<2 x s64>)393    %0:_(s64) = COPY $x0394    %1:_(s64) = COPY $x1395    %2:_(s64) = COPY $x2396    %3:_(s64) = COPY $x3397    %4:_(s64) = COPY $x4398    %5:_(s64) = COPY $x5399    %6:_(s64) = COPY $x6400    %7:_(s64) = COPY $x7401    %v8:_(<2 x s64>) = G_BUILD_VECTOR %0(s64), %1(s64)402    %v9:_(<2 x s64>) = G_BUILD_VECTOR %2(s64), %3(s64)403    %cmp1:_(<2 x s1>) = G_FCMP floatpred(oeq), %v8(<2 x s64>), %v9404    %cmp2:_(<2 x s1>) = G_FCMP floatpred(olt), %v8(<2 x s64>), %v9405    %and:_(<2 x s1>) = G_AND %cmp1, %cmp2406    %zext:_(<2 x s64>) = G_ZEXT %and(<2 x s1>)407    $q0 = COPY %zext408...409---410name:            test_dont_combine_pointers411body:             |412  ; CHECK-LABEL: name: test_dont_combine_pointers413  ; CHECK: bb.0:414  ; CHECK-NEXT:   successors: %bb.1(0x80000000)415  ; CHECK-NEXT: {{  $}}416  ; CHECK-NEXT:   [[C:%[0-9]+]]:_(p0) = G_CONSTANT i64 0417  ; CHECK-NEXT:   [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -8418  ; CHECK-NEXT:   [[INTTOPTR:%[0-9]+]]:_(p0) = G_INTTOPTR [[C1]](s64)419  ; CHECK-NEXT:   [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 -16420  ; CHECK-NEXT:   [[INTTOPTR1:%[0-9]+]]:_(p0) = G_INTTOPTR [[C2]](s64)421  ; CHECK-NEXT:   [[C3:%[0-9]+]]:_(s1) = G_CONSTANT i1 false422  ; CHECK-NEXT: {{  $}}423  ; CHECK-NEXT: bb.1:424  ; CHECK-NEXT:   successors: %bb.2(0x60000000), %bb.3(0x20000000)425  ; CHECK-NEXT: {{  $}}426  ; CHECK-NEXT:   [[LOAD:%[0-9]+]]:_(p0) = G_LOAD [[C]](p0) :: (load (p0))427  ; CHECK-NEXT:   [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](p0), [[INTTOPTR]]428  ; CHECK-NEXT:   [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[LOAD]](p0), [[INTTOPTR1]]429  ; CHECK-NEXT:   [[AND:%[0-9]+]]:_(s1) = G_AND [[ICMP]], [[ICMP1]]430  ; CHECK-NEXT:   G_BRCOND [[AND]](s1), %bb.3431  ; CHECK-NEXT:   G_BR %bb.2432  ; CHECK-NEXT: {{  $}}433  ; CHECK-NEXT: bb.2:434  ; CHECK-NEXT:   successors: %bb.1(0x55555555), %bb.3(0x2aaaaaab)435  ; CHECK-NEXT: {{  $}}436  ; CHECK-NEXT:   G_BRCOND [[C3]](s1), %bb.1437  ; CHECK-NEXT:   G_BR %bb.3438  ; CHECK-NEXT: {{  $}}439  ; CHECK-NEXT: bb.3:440  ; CHECK-NEXT:   successors: %bb.1(0x80000000)441  ; CHECK-NEXT: {{  $}}442  ; CHECK-NEXT:   G_BR %bb.1443  bb.1:444    %1:_(p0) = G_CONSTANT i64 0445    %3:_(s64) = G_CONSTANT i64 -8446    %2:_(p0) = G_INTTOPTR %3(s64)447    %6:_(s64) = G_CONSTANT i64 -16448    %5:_(p0) = G_INTTOPTR %6(s64)449    %10:_(s1) = G_CONSTANT i1 false450 451  bb.2:452    successors: %bb.4(0x60000000), %bb.3(0x20000000)453 454    %0:_(p0) = G_LOAD %1(p0) :: (load (p0))455    %4:_(s1) = G_ICMP intpred(eq), %0(p0), %2456    %7:_(s1) = G_ICMP intpred(eq), %0(p0), %5457    %8:_(s1) = G_OR %4, %7458    %9:_(s1) = G_SELECT %8(s1), %10, %10459    G_BRCOND %8(s1), %bb.4460    G_BR %bb.3461 462  bb.4:463    successors: %bb.2(0x55555555), %bb.3(0x2aaaaaab)464 465    G_BRCOND %10(s1), %bb.2466    G_BR %bb.3467 468  bb.3:469    G_BR %bb.2470 471...472