From a2fe6aa9ebf38fd1b45e8514325e6e40400c15ff Mon Sep 17 00:00:00 2001 From: Cullen Rhodes Date: Thu, 14 Jul 2022 09:01:08 +0000 Subject: [PATCH] [NFC][SVE] Add tests for zext(cmpeq(x, splat(0))) In preparation for follow up patch folding above to CNOT. Reviewed By: paulwalker-arm, peterwaller-arm Differential Revision: https://reviews.llvm.org/D129625 --- llvm/test/CodeGen/AArch64/sve-cmp-folds.ll | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/llvm/test/CodeGen/AArch64/sve-cmp-folds.ll b/llvm/test/CodeGen/AArch64/sve-cmp-folds.ll index 6812f0bdb588..81039307fd0d 100644 --- a/llvm/test/CodeGen/AArch64/sve-cmp-folds.ll +++ b/llvm/test/CodeGen/AArch64/sve-cmp-folds.ll @@ -53,6 +53,54 @@ define @not_fcmp_uge_nxv4f32( %a, %not } +define @icmp_cnot_nxv16i8( %a) { +; CHECK-LABEL: icmp_cnot_nxv16i8: +; CHECK: // %bb.0: +; CHECK-NEXT: ptrue p0.b +; CHECK-NEXT: cmpeq p0.b, p0/z, z0.b, #0 +; CHECK-NEXT: mov z0.b, p0/z, #1 // =0x1 +; CHECK-NEXT: ret + %mask = icmp eq %a, zeroinitializer + %zext = zext %mask to + ret %zext +} + +define @icmp_cnot_nxv8i16( %a) { +; CHECK-LABEL: icmp_cnot_nxv8i16: +; CHECK: // %bb.0: +; CHECK-NEXT: ptrue p0.h +; CHECK-NEXT: cmpeq p0.h, p0/z, z0.h, #0 +; CHECK-NEXT: mov z0.h, p0/z, #1 // =0x1 +; CHECK-NEXT: ret + %mask = icmp eq %a, zeroinitializer + %zext = zext %mask to + ret %zext +} + +define @icmp_cnot_nxv4i32( %a) { +; CHECK-LABEL: icmp_cnot_nxv4i32: +; CHECK: // %bb.0: +; CHECK-NEXT: ptrue p0.s +; CHECK-NEXT: cmpeq p0.s, p0/z, z0.s, #0 +; CHECK-NEXT: mov z0.s, p0/z, #1 // =0x1 +; CHECK-NEXT: ret + %mask = icmp eq %a, zeroinitializer + %zext = zext %mask to + ret %zext +} + +define @icmp_cnot_nxv2i64( %a) { +; CHECK-LABEL: icmp_cnot_nxv2i64: +; CHECK: // %bb.0: +; CHECK-NEXT: ptrue p0.d +; CHECK-NEXT: cmpeq p0.d, p0/z, z0.d, #0 +; CHECK-NEXT: mov z0.d, p0/z, #1 // =0x1 +; CHECK-NEXT: ret + %mask = icmp eq %a, zeroinitializer + %zext = zext %mask to + ret %zext +} + define i1 @foo_first( %a, %b) { ; CHECK-LABEL: foo_first: ; CHECK: // %bb.0: -- 2.34.1