[llvm] 463143f - [ValueTracking] add/adjust tests for min/max; NFC
Sanjay Patel via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 6 08:18:12 PDT 2020
Author: Sanjay Patel
Date: 2020-04-06T11:14:05-04:00
New Revision: 463143f0d695e30c9bdd91eb14e047f6c3316e00
URL: https://github.com/llvm/llvm-project/commit/463143f0d695e30c9bdd91eb14e047f6c3316e00
DIFF: https://github.com/llvm/llvm-project/commit/463143f0d695e30c9bdd91eb14e047f6c3316e00.diff
LOG: [ValueTracking] add/adjust tests for min/max; NFC
Added:
Modified:
llvm/unittests/Analysis/ValueTrackingTest.cpp
Removed:
################################################################################
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp
index 14a0da1828e9..34d9716b5fc5 100644
--- a/llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -476,12 +476,12 @@ TEST_F(MatchSelectPatternTest, NotNotSMin) {
TEST_F(MatchSelectPatternTest, NotNotSMinSwap) {
parseAssembly(
- "define i8 @test(i8 %a, i8 %b) {\n"
- " %cmp = icmp slt i8 %a, %b\n"
- " %an = xor i8 %a, -1\n"
- " %bn = xor i8 %b, -1\n"
- " %A = select i1 %cmp, i8 %bn, i8 %an\n"
- " ret i8 %A\n"
+ "define <2 x i8> @test(<2 x i8> %a, <2 x i8> %b) {\n"
+ " %cmp = icmp slt <2 x i8> %a, %b\n"
+ " %an = xor <2 x i8> %a, <i8 -1, i8-1>\n"
+ " %bn = xor <2 x i8> %b, <i8 -1, i8-1>\n"
+ " %A = select <2 x i1> %cmp, <2 x i8> %bn, <2 x i8> %an\n"
+ " ret <2 x i8> %A\n"
"}\n");
expectPattern({SPF_SMIN, SPNB_NA, false});
}
@@ -499,15 +499,87 @@ TEST_F(MatchSelectPatternTest, NotNotSMax) {
}
TEST_F(MatchSelectPatternTest, NotNotSMaxSwap) {
+ parseAssembly(
+ "define <2 x i8> @test(<2 x i8> %a, <2 x i8> %b) {\n"
+ " %cmp = icmp sgt <2 x i8> %a, %b\n"
+ " %an = xor <2 x i8> %a, <i8 -1, i8-1>\n"
+ " %bn = xor <2 x i8> %b, <i8 -1, i8-1>\n"
+ " %A = select <2 x i1> %cmp, <2 x i8> %bn, <2 x i8> %an\n"
+ " ret <2 x i8> %A\n"
+ "}\n");
+ expectPattern({SPF_SMAX, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotUMin) {
+ parseAssembly(
+ "define <2 x i8> @test(<2 x i8> %a, <2 x i8> %b) {\n"
+ " %cmp = icmp ugt <2 x i8> %a, %b\n"
+ " %an = xor <2 x i8> %a, <i8 -1, i8-1>\n"
+ " %bn = xor <2 x i8> %b, <i8 -1, i8-1>\n"
+ " %A = select <2 x i1> %cmp, <2 x i8> %an, <2 x i8> %bn\n"
+ " ret <2 x i8> %A\n"
+ "}\n");
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotUMinSwap) {
parseAssembly(
"define i8 @test(i8 %a, i8 %b) {\n"
- " %cmp = icmp sgt i8 %a, %b\n"
+ " %cmp = icmp ult i8 %a, %b\n"
" %an = xor i8 %a, -1\n"
" %bn = xor i8 %b, -1\n"
" %A = select i1 %cmp, i8 %bn, i8 %an\n"
" ret i8 %A\n"
"}\n");
- expectPattern({SPF_SMAX, SPNB_NA, false});
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotUMax) {
+ parseAssembly(
+ "define <2 x i8> @test(<2 x i8> %a, <2 x i8> %b) {\n"
+ " %cmp = icmp ult <2 x i8> %a, %b\n"
+ " %an = xor <2 x i8> %a, <i8 -1, i8-1>\n"
+ " %bn = xor <2 x i8> %b, <i8 -1, i8-1>\n"
+ " %A = select <2 x i1> %cmp, <2 x i8> %an, <2 x i8> %bn\n"
+ " ret <2 x i8> %A\n"
+ "}\n");
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotUMaxSwap) {
+ parseAssembly(
+ "define i8 @test(i8 %a, i8 %b) {\n"
+ " %cmp = icmp ugt i8 %a, %b\n"
+ " %an = xor i8 %a, -1\n"
+ " %bn = xor i8 %b, -1\n"
+ " %A = select i1 %cmp, i8 %bn, i8 %an\n"
+ " ret i8 %A\n"
+ "}\n");
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotEq) {
+ parseAssembly(
+ "define i8 @test(i8 %a, i8 %b) {\n"
+ " %cmp = icmp eq i8 %a, %b\n"
+ " %an = xor i8 %a, -1\n"
+ " %bn = xor i8 %b, -1\n"
+ " %A = select i1 %cmp, i8 %bn, i8 %an\n"
+ " ret i8 %A\n"
+ "}\n");
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
+}
+
+TEST_F(MatchSelectPatternTest, NotNotNe) {
+ parseAssembly(
+ "define i8 @test(i8 %a, i8 %b) {\n"
+ " %cmp = icmp ne i8 %a, %b\n"
+ " %an = xor i8 %a, -1\n"
+ " %bn = xor i8 %b, -1\n"
+ " %A = select i1 %cmp, i8 %bn, i8 %an\n"
+ " ret i8 %A\n"
+ "}\n");
+ expectPattern({SPF_UNKNOWN, SPNB_NA, false});
}
TEST(ValueTracking, GuaranteedToTransferExecutionToSuccessor) {
More information about the llvm-commits
mailing list