From cac28b452e4703ff7789b41476b1349d3894ad0d Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Sat, 3 Nov 2018 13:18:55 +0000 Subject: [ValueTracking] peek through 2-input shuffles in ComputeNumSignBits This patch gives the IR ComputeNumSignBits the same functionality as the DAG version (the code is derived from the existing code). This an extension of the single input shuffle analysis added with D53659. Differential Revision: https://reviews.llvm.org/D53987 llvm-svn: 346071 --- llvm/unittests/Analysis/ValueTrackingTest.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'llvm/unittests/Analysis/ValueTrackingTest.cpp') diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp index e66d8f77fd4..b13948adad7 100644 --- a/llvm/unittests/Analysis/ValueTrackingTest.cpp +++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp @@ -514,7 +514,6 @@ TEST(ValueTracking, ComputeNumSignBits_Shuffle) { EXPECT_EQ(ComputeNumSignBits(RVal, M->getDataLayout()), 1u); } -// FIXME: // No guarantees for canonical IR in this analysis, so a shuffle element that // references an undef value means this can't return any extra information. TEST(ValueTracking, ComputeNumSignBits_Shuffle2) { @@ -534,7 +533,7 @@ TEST(ValueTracking, ComputeNumSignBits_Shuffle2) { auto *RVal = cast(F->getEntryBlock().getTerminator())->getOperand(0); - EXPECT_EQ(ComputeNumSignBits(RVal, M->getDataLayout()), 32u); + EXPECT_EQ(ComputeNumSignBits(RVal, M->getDataLayout()), 1u); } TEST(ValueTracking, ComputeKnownBits) { -- cgit v1.2.3