96 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - -mtriple=aarch64-unknown-unknown -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs %s | FileCheck %s --check-prefixes=CHECK3 4---5name: test_icmp_canon6body: |7 bb.1:8 ; CHECK-LABEL: name: test_icmp_canon9 ; CHECK: %lhs:_(s64) = G_CONSTANT i64 1110 ; CHECK-NEXT: %rhs:_(s64) = COPY $x011 ; CHECK-NEXT: %res:_(s32) = G_ICMP intpred(sgt), %rhs(s64), %lhs12 ; CHECK-NEXT: $w0 = COPY %res(s32)13 %lhs:_(s64) = G_CONSTANT i64 1114 %rhs:_(s64) = COPY $x015 %res:_(s32) = G_ICMP intpred(slt), %lhs(s64), %rhs16 $w0 = COPY %res(s32)17...18---19name: test_icmp_no_canon20body: |21 bb.1:22 ; CHECK-LABEL: name: test_icmp_no_canon23 ; CHECK: %lhs:_(s64) = COPY $x024 ; CHECK-NEXT: %rhs:_(s64) = G_CONSTANT i64 1125 ; CHECK-NEXT: %res:_(s32) = G_ICMP intpred(slt), %lhs(s64), %rhs26 ; CHECK-NEXT: $w0 = COPY %res(s32)27 %lhs:_(s64) = COPY $x028 %rhs:_(s64) = G_CONSTANT i64 1129 %res:_(s32) = G_ICMP intpred(slt), %lhs(s64), %rhs30 $w0 = COPY %res(s32)31...32---33name: test_icmp_canon_bv34body: |35 bb.1:36 ; CHECK-LABEL: name: test_icmp_canon_bv37 ; CHECK: %opaque1:_(s64) = COPY $x038 ; CHECK-NEXT: %opaque2:_(s64) = COPY $x039 ; CHECK-NEXT: %const1:_(s64) = G_CONSTANT i64 1140 ; CHECK-NEXT: %const2:_(s64) = G_CONSTANT i64 1241 ; CHECK-NEXT: %lhs:_(<2 x s64>) = G_BUILD_VECTOR %const1(s64), %const2(s64)42 ; CHECK-NEXT: %rhs:_(<2 x s64>) = G_BUILD_VECTOR %opaque1(s64), %opaque2(s64)43 ; CHECK-NEXT: %res:_(<2 x s32>) = G_ICMP intpred(sgt), %rhs(<2 x s64>), %lhs44 ; CHECK-NEXT: $x0 = COPY %res(<2 x s32>)45 %opaque1:_(s64) = COPY $x046 %opaque2:_(s64) = COPY $x047 %const1:_(s64) = G_CONSTANT i64 1148 %const2:_(s64) = G_CONSTANT i64 1249 %lhs:_(<2 x s64>) = G_BUILD_VECTOR %const1(s64), %const2(s64)50 %rhs:_(<2 x s64>) = G_BUILD_VECTOR %opaque1(s64), %opaque2(s64)51 %res:_(<2 x s32>) = G_ICMP intpred(slt), %lhs(<2 x s64>), %rhs52 $x0 = COPY %res(<2 x s32>)53...54---55name: test_icmp_no_canon_bv_neither_const56body: |57 bb.1:58 ; CHECK-LABEL: name: test_icmp_no_canon_bv_neither_const59 ; CHECK: %opaque1:_(s64) = COPY $x060 ; CHECK-NEXT: %opaque2:_(s64) = COPY $x061 ; CHECK-NEXT: %const1:_(s64) = G_CONSTANT i64 1162 ; CHECK-NEXT: %const2:_(s64) = G_CONSTANT i64 1263 ; CHECK-NEXT: %lhs:_(<2 x s64>) = G_BUILD_VECTOR %const1(s64), %opaque2(s64)64 ; CHECK-NEXT: %rhs:_(<2 x s64>) = G_BUILD_VECTOR %opaque1(s64), %const2(s64)65 ; CHECK-NEXT: %res:_(<2 x s32>) = G_ICMP intpred(slt), %lhs(<2 x s64>), %rhs66 ; CHECK-NEXT: $x0 = COPY %res(<2 x s32>)67 %opaque1:_(s64) = COPY $x068 %opaque2:_(s64) = COPY $x069 %const1:_(s64) = G_CONSTANT i64 1170 %const2:_(s64) = G_CONSTANT i64 1271 %lhs:_(<2 x s64>) = G_BUILD_VECTOR %const1(s64), %opaque2(s64)72 %rhs:_(<2 x s64>) = G_BUILD_VECTOR %opaque1(s64), %const2(s64)73 %res:_(<2 x s32>) = G_ICMP intpred(slt), %lhs(<2 x s64>), %rhs74 $x0 = COPY %res(<2 x s32>)75...76---77name: test_icmp_canon_splat78body: |79 bb.1:80 ; CHECK-LABEL: name: test_icmp_canon_splat81 ; CHECK: %const:_(s64) = G_CONSTANT i64 1182 ; CHECK-NEXT: %lhs:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %const(s64)83 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x184 ; CHECK-NEXT: %rhs:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR [[COPY]](s64)85 ; CHECK-NEXT: %res:_(<vscale x 2 x s32>) = G_ICMP intpred(sgt), %rhs(<vscale x 2 x s64>), %lhs86 ; CHECK-NEXT: %z:_(<vscale x 2 x s64>) = G_ZEXT %res(<vscale x 2 x s32>)87 ; CHECK-NEXT: $z0 = COPY %z(<vscale x 2 x s64>)88 %const:_(s64) = G_CONSTANT i64 1189 %lhs:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %const:_(s64)90 %1:_(s64) = COPY $x191 %rhs:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %1:_(s64)92 %res:_(<vscale x 2 x s32>) = G_ICMP intpred(slt), %lhs(<vscale x 2 x s64>), %rhs93 %z:_(<vscale x 2 x s64>) = G_ZEXT %res94 $z0 = COPY %z(<vscale x 2 x s64>)95...96