diff options
author | Nikita Popov <npopov@redhat.com> | 2024-07-22 15:04:18 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2024-07-22 15:06:12 +0200 |
commit | a7fb25dd1fcc2e5afcc65cccfa83b7b381b48906 (patch) | |
tree | b4288d077b133a93e46bb33ef2d37e673b63078b | |
parent | 2f5dc596b5719e5ed7f6978dafbce994f425a033 (diff) | |
download | llvm-a7fb25dd1fcc2e5afcc65cccfa83b7b381b48906.zip llvm-a7fb25dd1fcc2e5afcc65cccfa83b7b381b48906.tar.gz llvm-a7fb25dd1fcc2e5afcc65cccfa83b7b381b48906.tar.bz2 |
[AArch64] Fix broken check lines (NFC)
-rw-r--r-- | llvm/test/CodeGen/AArch64/fast-isel-select.ll | 281 |
1 files changed, 88 insertions, 193 deletions
diff --git a/llvm/test/CodeGen/AArch64/fast-isel-select.ll b/llvm/test/CodeGen/AArch64/fast-isel-select.ll index 6570134..315ca4f 100644 --- a/llvm/test/CodeGen/AArch64/fast-isel-select.ll +++ b/llvm/test/CodeGen/AArch64/fast-isel-select.ll @@ -1,15 +1,16 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 -; RUN: llc -mtriple=aarch64-apple-darwin -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-apple-darwin -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,CHECK-SDAGISEL ; RUN: llc -mtriple=aarch64-apple-darwin -fast-isel -fast-isel-abort=1 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,CHECK-FASTISEL ; RUN: llc -mtriple=aarch64-apple-darwin -global-isel -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,CHECK-GISEL ; First test the different supported value types for select. define zeroext i1 @select_i1(i1 zeroext %c, i1 zeroext %a, i1 zeroext %b) { -; GISEL-LABEL: select_i1: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: csel w0, w1, w2, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_i1: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: csel w0, w1, w2, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_i1: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -27,11 +28,12 @@ define zeroext i1 @select_i1(i1 zeroext %c, i1 zeroext %a, i1 zeroext %b) { } define zeroext i8 @select_i8(i1 zeroext %c, i8 zeroext %a, i8 zeroext %b) { -; GISEL-LABEL: select_i8: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: csel w0, w1, w2, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_i8: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: csel w0, w1, w2, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_i8: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -49,11 +51,12 @@ define zeroext i8 @select_i8(i1 zeroext %c, i8 zeroext %a, i8 zeroext %b) { } define zeroext i16 @select_i16(i1 zeroext %c, i16 zeroext %a, i16 zeroext %b) { -; GISEL-LABEL: select_i16: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: csel w0, w1, w2, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_i16: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: csel w0, w1, w2, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_i16: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -71,11 +74,12 @@ define zeroext i16 @select_i16(i1 zeroext %c, i16 zeroext %a, i16 zeroext %b) { } define i32 @select_i32(i1 zeroext %c, i32 %a, i32 %b) { -; GISEL-LABEL: select_i32: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: csel w0, w1, w2, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_i32: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: csel w0, w1, w2, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_i32: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -92,11 +96,12 @@ define i32 @select_i32(i1 zeroext %c, i32 %a, i32 %b) { } define i64 @select_i64(i1 zeroext %c, i64 %a, i64 %b) { -; GISEL-LABEL: select_i64: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: csel x0, x1, x2, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_i64: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: csel x0, x1, x2, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_i64: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -113,11 +118,12 @@ define i64 @select_i64(i1 zeroext %c, i64 %a, i64 %b) { } define float @select_f32(i1 zeroext %c, float %a, float %b) { -; GISEL-LABEL: select_f32: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: fcsel s0, s0, s1, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_f32: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: fcsel s0, s0, s1, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_f32: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -134,11 +140,12 @@ define float @select_f32(i1 zeroext %c, float %a, float %b) { } define double @select_f64(i1 zeroext %c, double %a, double %b) { -; GISEL-LABEL: select_f64: -; GISEL: ; %bb.0: -; GISEL-NEXT: tst w0, #0x1 -; GISEL-NEXT: fcsel d0, d0, d1, ne -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_f64: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: cmp w0, #0 +; CHECK-SDAGISEL-NEXT: fcsel d0, d0, d1, ne +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_f64: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: tst w0, #0x1 @@ -156,6 +163,11 @@ define double @select_f64(i1 zeroext %c, double %a, double %b) { ; Now test the folding of all compares. define float @select_fcmp_false(float %x, float %a, float %b) { +; CHECK-SDAGISEL-LABEL: select_fcmp_false: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: fmov s0, s2 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_fcmp_false: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: fmov s0, s2 @@ -166,11 +178,6 @@ define float @select_fcmp_false(float %x, float %a, float %b) { ; CHECK-GISEL-NEXT: fcmp s0, s0 ; CHECK-GISEL-NEXT: fcsel s0, s1, s2, gt ; CHECK-GISEL-NEXT: ret -; GISEL-LABEL: select_fcmp_false: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s0 -; GISEL-NEXT: fcsel s0, s1, s2, gt -; GISEL-NEXT: ret %1 = fcmp ogt float %x, %x %2 = select i1 %1, float %a, float %b ret float %2 @@ -182,11 +189,6 @@ define float @select_fcmp_ogt(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, gt ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ogt: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, gt -; GISEL-NEXT: ret %1 = fcmp ogt float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -198,11 +200,6 @@ define float @select_fcmp_oge(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, ge ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_oge: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, ge -; GISEL-NEXT: ret %1 = fcmp oge float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -214,11 +211,6 @@ define float @select_fcmp_olt(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, mi ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_olt: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, mi -; GISEL-NEXT: ret %1 = fcmp olt float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -230,17 +222,19 @@ define float @select_fcmp_ole(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, ls ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ole: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, ls -; GISEL-NEXT: ret %1 = fcmp ole float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 } define float @select_fcmp_one(float %x, float %y, float %a, float %b) { +; CHECK-SDAGISEL-LABEL: select_fcmp_one: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: fcmp s0, s1 +; CHECK-SDAGISEL-NEXT: fcsel s0, s2, s3, mi +; CHECK-SDAGISEL-NEXT: fcsel s0, s2, s0, gt +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_fcmp_one: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: fcmp s0, s1 @@ -257,15 +251,6 @@ define float @select_fcmp_one(float %x, float %y, float %a, float %b) { ; CHECK-GISEL-NEXT: tst w8, #0x1 ; CHECK-GISEL-NEXT: fcsel s0, s2, s3, ne ; CHECK-GISEL-NEXT: ret -; GISEL-LABEL: select_fcmp_one: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: cset w8, mi -; GISEL-NEXT: cset w9, gt -; GISEL-NEXT: orr w8, w8, w9 -; GISEL-NEXT: tst w8, #0x1 -; GISEL-NEXT: fcsel s0, s2, s3, ne -; GISEL-NEXT: ret %1 = fcmp one float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -277,11 +262,6 @@ define float @select_fcmp_ord(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, vc ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ord: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, vc -; GISEL-NEXT: ret %1 = fcmp ord float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -293,17 +273,19 @@ define float @select_fcmp_uno(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, vs ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_uno: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, vs -; GISEL-NEXT: ret %1 = fcmp uno float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 } define float @select_fcmp_ueq(float %x, float %y, float %a, float %b) { +; CHECK-SDAGISEL-LABEL: select_fcmp_ueq: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: fcmp s0, s1 +; CHECK-SDAGISEL-NEXT: fcsel s0, s2, s3, eq +; CHECK-SDAGISEL-NEXT: fcsel s0, s2, s0, vs +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_fcmp_ueq: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: fcmp s0, s1 @@ -320,15 +302,6 @@ define float @select_fcmp_ueq(float %x, float %y, float %a, float %b) { ; CHECK-GISEL-NEXT: tst w8, #0x1 ; CHECK-GISEL-NEXT: fcsel s0, s2, s3, ne ; CHECK-GISEL-NEXT: ret -; GISEL-LABEL: select_fcmp_ueq: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: cset w8, eq -; GISEL-NEXT: cset w9, vs -; GISEL-NEXT: orr w8, w8, w9 -; GISEL-NEXT: tst w8, #0x1 -; GISEL-NEXT: fcsel s0, s2, s3, ne -; GISEL-NEXT: ret %1 = fcmp ueq float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -340,11 +313,6 @@ define float @select_fcmp_ugt(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, hi ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ugt: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, hi -; GISEL-NEXT: ret %1 = fcmp ugt float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -356,11 +324,6 @@ define float @select_fcmp_uge(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, pl ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_uge: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, pl -; GISEL-NEXT: ret %1 = fcmp uge float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -372,11 +335,6 @@ define float @select_fcmp_ult(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, lt ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ult: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, lt -; GISEL-NEXT: ret %1 = fcmp ult float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -389,11 +347,6 @@ define float @select_fcmp_ule(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, le ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_ule: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, le -; GISEL-NEXT: ret %1 = fcmp ule float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -405,17 +358,17 @@ define float @select_fcmp_une(float %x, float %y, float %a, float %b) { ; CHECK-NEXT: fcmp s0, s1 ; CHECK-NEXT: fcsel s0, s2, s3, ne ; CHECK-NEXT: ret -; GISEL-LABEL: select_fcmp_une: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s1 -; GISEL-NEXT: fcsel s0, s2, s3, ne -; GISEL-NEXT: ret %1 = fcmp une float %x, %y %2 = select i1 %1, float %a, float %b ret float %2 } define float @select_fcmp_true(float %x, float %a, float %b) { +; CHECK-SDAGISEL-LABEL: select_fcmp_true: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: fmov s0, s1 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_fcmp_true: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: fmov s0, s1 @@ -430,15 +383,6 @@ define float @select_fcmp_true(float %x, float %a, float %b) { ; CHECK-GISEL-NEXT: tst w8, #0x1 ; CHECK-GISEL-NEXT: fcsel s0, s1, s2, ne ; CHECK-GISEL-NEXT: ret -; GISEL-LABEL: select_fcmp_true: -; GISEL: ; %bb.0: -; GISEL-NEXT: fcmp s0, s0 -; GISEL-NEXT: cset w8, eq -; GISEL-NEXT: cset w9, vs -; GISEL-NEXT: orr w8, w8, w9 -; GISEL-NEXT: tst w8, #0x1 -; GISEL-NEXT: fcsel s0, s1, s2, ne -; GISEL-NEXT: ret %1 = fcmp ueq float %x, %x %2 = select i1 %1, float %a, float %b ret float %2 @@ -450,11 +394,6 @@ define float @select_icmp_eq(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, eq ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_eq: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, eq -; GISEL-NEXT: ret %1 = icmp eq i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -466,11 +405,6 @@ define float @select_icmp_ne(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, ne ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_ne: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, ne -; GISEL-NEXT: ret %1 = icmp ne i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -482,11 +416,6 @@ define float @select_icmp_ugt(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, hi ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_ugt: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, hi -; GISEL-NEXT: ret %1 = icmp ugt i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -498,11 +427,6 @@ define float @select_icmp_uge(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, hs ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_uge: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, hs -; GISEL-NEXT: ret %1 = icmp uge i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -514,11 +438,6 @@ define float @select_icmp_ult(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, lo ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_ult: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, lo -; GISEL-NEXT: ret %1 = icmp ult i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -530,11 +449,6 @@ define float @select_icmp_ule(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, ls ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_ule: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, ls -; GISEL-NEXT: ret %1 = icmp ule i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -546,11 +460,6 @@ define float @select_icmp_sgt(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, gt ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_sgt: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, gt -; GISEL-NEXT: ret %1 = icmp sgt i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -562,11 +471,6 @@ define float @select_icmp_sge(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, ge ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_sge: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, ge -; GISEL-NEXT: ret %1 = icmp sge i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -578,11 +482,6 @@ define float @select_icmp_slt(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, lt ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_slt: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, lt -; GISEL-NEXT: ret %1 = icmp slt i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -594,11 +493,6 @@ define float @select_icmp_sle(i32 %x, i32 %y, float %a, float %b) { ; CHECK-NEXT: cmp w0, w1 ; CHECK-NEXT: fcsel s0, s0, s1, le ; CHECK-NEXT: ret -; GISEL-LABEL: select_icmp_sle: -; GISEL: ; %bb.0: -; GISEL-NEXT: cmp w0, w1 -; GISEL-NEXT: fcsel s0, s0, s1, le -; GISEL-NEXT: ret %1 = icmp sle i32 %x, %y %2 = select i1 %1, float %a, float %b ret float %2 @@ -606,11 +500,11 @@ define float @select_icmp_sle(i32 %x, i32 %y, float %a, float %b) { ; Test peephole optimizations for select. define zeroext i1 @select_opt1(i1 zeroext %c, i1 zeroext %a) { -; GISEL-LABEL: select_opt1: -; GISEL: ; %bb.0: -; GISEL-NEXT: orr w8, w0, w1 -; GISEL-NEXT: and w0, w8, #0x1 -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_opt1: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: orr w0, w0, w1 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_opt1: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: orr w8, w0, w1 @@ -627,12 +521,12 @@ define zeroext i1 @select_opt1(i1 zeroext %c, i1 zeroext %a) { } define zeroext i1 @select_opt2(i1 zeroext %c, i1 zeroext %a) { -; GISEL-LABEL: select_opt2: -; GISEL: ; %bb.0: -; GISEL-NEXT: eor w8, w0, #0x1 -; GISEL-NEXT: orr w8, w8, w1 -; GISEL-NEXT: and w0, w8, #0x1 -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_opt2: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: eor w8, w0, #0x1 +; CHECK-SDAGISEL-NEXT: orr w0, w8, w1 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_opt2: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: eor w8, w0, #0x1 @@ -651,11 +545,11 @@ define zeroext i1 @select_opt2(i1 zeroext %c, i1 zeroext %a) { } define zeroext i1 @select_opt3(i1 zeroext %c, i1 zeroext %a) { -; GISEL-LABEL: select_opt3: -; GISEL: ; %bb.0: -; GISEL-NEXT: eor w8, w0, #0x1 -; GISEL-NEXT: and w0, w8, w1 -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_opt3: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: bic w0, w1, w0 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_opt3: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: bic w8, w1, w0 @@ -672,10 +566,11 @@ define zeroext i1 @select_opt3(i1 zeroext %c, i1 zeroext %a) { } define zeroext i1 @select_opt4(i1 zeroext %c, i1 zeroext %a) { -; GISEL-LABEL: select_opt4: -; GISEL: ; %bb.0: -; GISEL-NEXT: and w0, w0, w1 -; GISEL-NEXT: ret +; CHECK-SDAGISEL-LABEL: select_opt4: +; CHECK-SDAGISEL: ; %bb.0: +; CHECK-SDAGISEL-NEXT: and w0, w0, w1 +; CHECK-SDAGISEL-NEXT: ret +; ; CHECK-FASTISEL-LABEL: select_opt4: ; CHECK-FASTISEL: ; %bb.0: ; CHECK-FASTISEL-NEXT: and w8, w0, w1 |