aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis/ValueTrackingTest.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2023-04-17 15:01:11 -0400
committerMatt Arsenault <arsenm2@gmail.com>2023-04-24 22:31:20 -0400
commitf40d186d4a3a448bfb4233c52658a70e71ae04f1 (patch)
treefed5eaab4b69a83cb0ff1dd87c56c655bbbd12ae /llvm/unittests/Analysis/ValueTrackingTest.cpp
parent7aeec64215cdbb2420756808a902a9e6807ecb30 (diff)
downloadllvm-f40d186d4a3a448bfb4233c52658a70e71ae04f1.zip
llvm-f40d186d4a3a448bfb4233c52658a70e71ae04f1.tar.gz
llvm-f40d186d4a3a448bfb4233c52658a70e71ae04f1.tar.bz2
ValueTracking: Add ordered negative handling for fmul to computeKnownFPClass
Port from the existing handling in cannotBeOrderedLessThanZero
Diffstat (limited to 'llvm/unittests/Analysis/ValueTrackingTest.cpp')
-rw-r--r--llvm/unittests/Analysis/ValueTrackingTest.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp
index 22994ad..77f052d 100644
--- a/llvm/unittests/Analysis/ValueTrackingTest.cpp
+++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp
@@ -1580,11 +1580,11 @@ TEST_F(ComputeKnownFPClassTest, FSub) {
TEST_F(ComputeKnownFPClassTest, FMul) {
parseAssembly(
- "define float @test(float nofpclass(nan inf) %nnan.ninf, float nofpclass(nan) %nnan, float nofpclass(qnan) %no.qnan, float %unknown) {\n"
- " %A = fmul float %nnan.ninf, %nnan.ninf"
- " %A2 = fmul float %nnan.ninf, %nnan"
- " %A3 = fmul float %nnan, %nnan.ninf"
- " %A4 = fmul float %nnan.ninf, %no.qnan"
+ "define float @test(float nofpclass(nan inf) %nnan.ninf0, float nofpclass(nan inf) %nnan.ninf1, float nofpclass(nan) %nnan, float nofpclass(qnan) %no.qnan, float %unknown) {\n"
+ " %A = fmul float %nnan.ninf0, %nnan.ninf1"
+ " %A2 = fmul float %nnan.ninf0, %nnan"
+ " %A3 = fmul float %nnan, %nnan.ninf0"
+ " %A4 = fmul float %nnan.ninf0, %no.qnan"
" %A5 = fmul float %nnan, %nnan"
" ret float %A\n"
"}\n");
@@ -1592,23 +1592,23 @@ TEST_F(ComputeKnownFPClassTest, FMul) {
expectKnownFPClass(fcAllFlags, std::nullopt, A2);
expectKnownFPClass(fcAllFlags, std::nullopt, A3);
expectKnownFPClass(fcAllFlags, std::nullopt, A4);
- expectKnownFPClass(fcAllFlags, std::nullopt, A5);
+ expectKnownFPClass(fcPositive | fcNan, std::nullopt, A5);
}
TEST_F(ComputeKnownFPClassTest, FMulNoZero) {
parseAssembly(
- "define float @test(float nofpclass(zero) %no.zero, float nofpclass(zero nan) %no.zero.nan, float nofpclass(nzero nan) %no.negzero.nan, float nofpclass(pzero nan) %no.poszero.nan, float nofpclass(inf nan) %no.inf.nan, float nofpclass(inf) %no.inf, float nofpclass(nan) %no.nan) {\n"
- " %A = fmul float %no.zero.nan, %no.zero.nan"
+ "define float @test(float nofpclass(zero) %no.zero, float nofpclass(zero nan) %no.zero.nan0, float nofpclass(zero nan) %no.zero.nan1, float nofpclass(nzero nan) %no.negzero.nan, float nofpclass(pzero nan) %no.poszero.nan, float nofpclass(inf nan) %no.inf.nan, float nofpclass(inf) %no.inf, float nofpclass(nan) %no.nan) {\n"
+ " %A = fmul float %no.zero.nan0, %no.zero.nan1"
" %A2 = fmul float %no.zero, %no.zero"
- " %A3 = fmul float %no.poszero.nan, %no.zero.nan"
+ " %A3 = fmul float %no.poszero.nan, %no.zero.nan0"
" %A4 = fmul float %no.nan, %no.zero"
" %A5 = fmul float %no.zero, %no.inf"
- " %A6 = fmul float %no.zero.nan, %no.nan"
- " %A7 = fmul float %no.nan, %no.zero.nan"
+ " %A6 = fmul float %no.zero.nan0, %no.nan"
+ " %A7 = fmul float %no.nan, %no.zero.nan0"
" ret float %A\n"
"}\n");
expectKnownFPClass(fcFinite | fcInf, std::nullopt, A);
- expectKnownFPClass(fcAllFlags, std::nullopt, A2);
+ expectKnownFPClass(fcPositive | fcNan, std::nullopt, A2);
expectKnownFPClass(fcAllFlags, std::nullopt, A3);
expectKnownFPClass(fcAllFlags, std::nullopt, A4);
expectKnownFPClass(fcAllFlags, std::nullopt, A5);