[llvm] 7652710 - [InstSimplify] Add additional simplifyWithOpReplaced() vector tests (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 21 07:59:42 PDT 2022
Author: Nikita Popov
Date: 2022-09-21T16:59:28+02:00
New Revision: 7652710f9f0f018fcb385cf2cd01c83027edcbef
URL: https://github.com/llvm/llvm-project/commit/7652710f9f0f018fcb385cf2cd01c83027edcbef
DIFF: https://github.com/llvm/llvm-project/commit/7652710f9f0f018fcb385cf2cd01c83027edcbef.diff
LOG: [InstSimplify] Add additional simplifyWithOpReplaced() vector tests (NFC)
Added:
Modified:
llvm/test/Transforms/InstSimplify/select.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstSimplify/select.ll b/llvm/test/Transforms/InstSimplify/select.ll
index 96e065f85b00..756a019a9a0c 100644
--- a/llvm/test/Transforms/InstSimplify/select.ll
+++ b/llvm/test/Transforms/InstSimplify/select.ll
@@ -1046,7 +1046,36 @@ define i32 @select_ctpop_zero(i32 %x) {
%sel = select i1 %t0, i32 0, i32 %t1
ret i32 %sel
}
+
+define <2 x i32> @select_ctpop_zero_vec(<2 x i32> %x) {
+; CHECK-LABEL: @select_ctpop_zero_vec(
+; CHECK-NEXT: [[T0:%.*]] = icmp eq <2 x i32> [[X:%.*]], zeroinitializer
+; CHECK-NEXT: [[T1:%.*]] = call <2 x i32> @llvm.ctpop.v2i32(<2 x i32> [[X]])
+; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[T0]], <2 x i32> zeroinitializer, <2 x i32> [[T1]]
+; CHECK-NEXT: ret <2 x i32> [[SEL]]
+;
+ %t0 = icmp eq <2 x i32> %x, zeroinitializer
+ %t1 = call <2 x i32> @llvm.ctpop.v2i32(<2 x i32> %x)
+ %sel = select <2 x i1> %t0, <2 x i32> zeroinitializer, <2 x i32> %t1
+ ret <2 x i32> %sel
+}
+
+define <2 x i32> @select_vector_reverse(<2 x i32> %x) {
+; CHECK-LABEL: @select_vector_reverse(
+; CHECK-NEXT: [[CMP:%.*]] = icmp eq <2 x i32> [[X:%.*]], zeroinitializer
+; CHECK-NEXT: [[REV:%.*]] = call <2 x i32> @llvm.experimental.vector.reverse.v2i32(<2 x i32> [[X]])
+; CHECK-NEXT: [[SEL:%.*]] = select <2 x i1> [[CMP]], <2 x i32> zeroinitializer, <2 x i32> [[REV]]
+; CHECK-NEXT: ret <2 x i32> [[SEL]]
+;
+ %cmp = icmp eq <2 x i32> %x, zeroinitializer
+ %rev = call <2 x i32> @llvm.experimental.vector.reverse.v2i32(<2 x i32> %x)
+ %sel = select <2 x i1> %cmp, <2 x i32> zeroinitializer, <2 x i32> %rev
+ ret <2 x i32> %sel
+}
+
declare i32 @llvm.ctpop.i32(i32)
+declare <2 x i32> @llvm.ctpop.v2i32(<2 x i32>)
+declare <2 x i32> @llvm.experimental.vector.reverse.v2i32(<2 x i32>)
define <2 x i32> @vec_select_no_equivalence(<2 x i32> %x, <2 x i32> %y) {
; CHECK-LABEL: @vec_select_no_equivalence(
More information about the llvm-commits
mailing list