[llvm] 4bb4f5b - [InstCombine] add tests for vector icmp with undef constant elements; NFC
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 2 12:41:59 PST 2020
Author: Sanjay Patel
Date: 2020-01-02T15:39:45-05:00
New Revision: 4bb4f5b1d9135cc1d3b804662a7b56fc84e075de
URL: https://github.com/llvm/llvm-project/commit/4bb4f5b1d9135cc1d3b804662a7b56fc84e075de
DIFF: https://github.com/llvm/llvm-project/commit/4bb4f5b1d9135cc1d3b804662a7b56fc84e075de.diff
LOG: [InstCombine] add tests for vector icmp with undef constant elements; NFC
Added:
Modified:
llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll
llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll
llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll
llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
index 35ae2600c9a5..f1f2528fe3d2 100644
--- a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
+++ b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ne-to-icmp-ugt.ll
@@ -90,6 +90,16 @@ define <3 x i1> @p3_vec_splat_undef(<3 x i8> %x) {
ret <3 x i1> %ret
}
+define <3 x i1> @p3_vec_nonsplat_undef(<3 x i8> %x) {
+; CHECK-LABEL: @p3_vec_nonsplat_undef(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt <3 x i8> [[X:%.*]], <i8 -1, i8 undef, i8 3>
+; CHECK-NEXT: ret <3 x i1> [[TMP1]]
+;
+ %tmp0 = and <3 x i8> %x, <i8 -1, i8 undef, i8 3>
+ %ret = icmp ne <3 x i8> %tmp0, %x
+ ret <3 x i1> %ret
+}
+
; ============================================================================ ;
; Commutativity tests.
; ============================================================================ ;
diff --git a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll
index b6d1c99cc0af..d3ef5e54f010 100644
--- a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll
+++ b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-sgt-to-icmp-sgt.ll
@@ -85,6 +85,18 @@ define <3 x i1> @p3_vec_splat_undef() {
ret <3 x i1> %ret
}
+define <3 x i1> @p3_vec_nonsplat_undef() {
+; CHECK-LABEL: @p3_vec_nonsplat_undef(
+; CHECK-NEXT: [[X:%.*]] = call <3 x i8> @gen3x8()
+; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt <3 x i8> [[X]], <i8 15, i8 3, i8 undef>
+; CHECK-NEXT: ret <3 x i1> [[TMP1]]
+;
+ %x = call <3 x i8> @gen3x8()
+ %tmp0 = and <3 x i8> %x, <i8 15, i8 3, i8 undef>
+ %ret = icmp sgt <3 x i8> %x, %tmp0
+ ret <3 x i1> %ret
+}
+
; ============================================================================ ;
; One-use tests. We don't care about multi-uses here.
; ============================================================================ ;
diff --git a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll
index 7cda5727272d..6366fed23c3f 100644
--- a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll
+++ b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-slt-to-icmp-sgt.ll
@@ -69,6 +69,16 @@ define <3 x i1> @p3_vec_splat_undef(<3 x i8> %x) {
ret <3 x i1> %ret
}
+define <3 x i1> @p3_vec_nonsplat_undef(<3 x i8> %x) {
+; CHECK-LABEL: @p3_vec_nonsplat_undef(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt <3 x i8> [[X:%.*]], <i8 undef, i8 15, i8 3>
+; CHECK-NEXT: ret <3 x i1> [[TMP1]]
+;
+ %tmp0 = and <3 x i8> %x, <i8 undef, i8 15, i8 3>
+ %ret = icmp slt <3 x i8> %tmp0, %x
+ ret <3 x i1> %ret
+}
+
; ============================================================================ ;
; One-use tests. We don't care about multi-uses here.
; ============================================================================ ;
diff --git a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll
index 38a57d6d2674..9e0008611b58 100644
--- a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll
+++ b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ugt-to-icmp-ugt.ll
@@ -108,6 +108,18 @@ define <3 x i1> @p3_vec_splat_undef() {
ret <3 x i1> %ret
}
+define <3 x i1> @p3_vec_nonsplat_undef() {
+; CHECK-LABEL: @p3_vec_nonsplat_undef(
+; CHECK-NEXT: [[X:%.*]] = call <3 x i8> @gen3x8()
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt <3 x i8> [[X]], <i8 3, i8 undef, i8 15>
+; CHECK-NEXT: ret <3 x i1> [[TMP1]]
+;
+ %x = call <3 x i8> @gen3x8()
+ %tmp0 = and <3 x i8> %x, <i8 3, i8 undef, i8 15>
+ %ret = icmp ugt <3 x i8> %x, %tmp0
+ ret <3 x i1> %ret
+}
+
; ============================================================================ ;
; Commutativity tests.
; ============================================================================ ;
diff --git a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll
index ad0f0cf3c0e9..f6a85d4860ee 100644
--- a/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll
+++ b/llvm/test/Transforms/InstCombine/canonicalize-constant-low-bit-mask-and-icmp-ult-to-icmp-ugt.ll
@@ -91,6 +91,16 @@ define <3 x i1> @p3_vec_splat_undef(<3 x i8> %x) {
ret <3 x i1> %ret
}
+define <3 x i1> @p3_vec_nonsplat_undef(<3 x i8> %x) {
+; CHECK-LABEL: @p3_vec_nonsplat_undef(
+; CHECK-NEXT: [[TMP1:%.*]] = icmp ugt <3 x i8> [[X:%.*]], <i8 7, i8 31, i8 undef>
+; CHECK-NEXT: ret <3 x i1> [[TMP1]]
+;
+ %tmp0 = and <3 x i8> %x, <i8 7, i8 31, i8 undef>
+ %ret = icmp ult <3 x i8> %tmp0, %x
+ ret <3 x i1> %ret
+}
+
; ============================================================================ ;
; Commutativity tests.
; ============================================================================ ;
More information about the llvm-commits
mailing list