From: Florian Hahn Date: Sun, 5 Mar 2023 11:08:54 +0000 (+0100) Subject: [VPlan] VPWidenCallRecipe has side-effects if the call has. X-Git-Tag: upstream/17.0.6~15838 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=be968dbeee46daaba164d11be4391bbebd61baf0;p=platform%2Fupstream%2Fllvm.git [VPlan] VPWidenCallRecipe has side-effects if the call has. Handle VPWidenCallRecipe in VPRecipeBase::mayHaveSideEffects by delegating to the underlying call. --- diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index e6355ed..935a156 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -112,6 +112,9 @@ bool VPRecipeBase::mayHaveSideEffects() const { case VPDerivedIVSC: case VPPredInstPHISC: return false; + case VPWidenCallSC: + return cast(getVPSingleValue()->getUnderlyingValue()) + ->mayHaveSideEffects(); case VPWidenIntOrFpInductionSC: case VPWidenPointerInductionSC: case VPWidenCanonicalIVSC: diff --git a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp index 4328fe9..430cb29 100644 --- a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp +++ b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp @@ -1153,7 +1153,7 @@ TEST(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) { Args.push_back(&Op2); VPWidenCallRecipe Recipe(*Call, make_range(Args.begin(), Args.end()), false); - EXPECT_TRUE(Recipe.mayHaveSideEffects()); + EXPECT_FALSE(Recipe.mayHaveSideEffects()); EXPECT_FALSE(Recipe.mayReadFromMemory()); EXPECT_FALSE(Recipe.mayWriteToMemory()); EXPECT_FALSE(Recipe.mayReadOrWriteMemory());