diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2023-04-17 15:01:11 -0400 |
---|---|---|
committer | Matt Arsenault <arsenm2@gmail.com> | 2023-04-24 22:31:20 -0400 |
commit | f40d186d4a3a448bfb4233c52658a70e71ae04f1 (patch) | |
tree | fed5eaab4b69a83cb0ff1dd87c56c655bbbd12ae /llvm/unittests/Analysis/ValueTrackingTest.cpp | |
parent | 7aeec64215cdbb2420756808a902a9e6807ecb30 (diff) | |
download | llvm-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.cpp | 24 |
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); |