From 1e648cc1109565cbdcfafc5323762df1d918f279 Mon Sep 17 00:00:00 2001 From: Elvis Wang Date: Sun, 15 Dec 2024 23:04:37 -0800 Subject: [PATCH] [VPlan] Passing non-null instruction when creating VPReductionRecipe in unittest. --- .../Transforms/Vectorize/VPlanTest.cpp | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp index 3179cfc676ab6..4108b954d1341 100644 --- a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp +++ b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp @@ -1165,22 +1165,27 @@ TEST(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) { } { + auto *Add = BinaryOperator::CreateAdd(PoisonValue::get(Int32), + PoisonValue::get(Int32)); VPValue ChainOp; VPValue VecOp; VPValue CondOp; - VPReductionRecipe Recipe(RecurrenceDescriptor(), nullptr, &ChainOp, &CondOp, + VPReductionRecipe Recipe(RecurrenceDescriptor(), Add, &ChainOp, &CondOp, &VecOp, false); EXPECT_FALSE(Recipe.mayHaveSideEffects()); EXPECT_FALSE(Recipe.mayReadFromMemory()); EXPECT_FALSE(Recipe.mayWriteToMemory()); EXPECT_FALSE(Recipe.mayReadOrWriteMemory()); + delete Add; } { + auto *Add = BinaryOperator::CreateAdd(PoisonValue::get(Int32), + PoisonValue::get(Int32)); VPValue ChainOp; VPValue VecOp; VPValue CondOp; - VPReductionRecipe Recipe(RecurrenceDescriptor(), nullptr, &ChainOp, &CondOp, + VPReductionRecipe Recipe(RecurrenceDescriptor(), Add, &ChainOp, &CondOp, &VecOp, false); VPValue EVL; VPReductionEVLRecipe EVLRecipe(Recipe, EVL, &CondOp); @@ -1188,6 +1193,7 @@ TEST(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) { EXPECT_FALSE(EVLRecipe.mayReadFromMemory()); EXPECT_FALSE(EVLRecipe.mayWriteToMemory()); EXPECT_FALSE(EVLRecipe.mayReadOrWriteMemory()); + delete Add; } { @@ -1540,30 +1546,38 @@ TEST(VPRecipeTest, dumpRecipeUnnamedVPValuesNotInPlanOrBlock) { TEST(VPRecipeTest, CastVPReductionRecipeToVPUser) { LLVMContext C; + IntegerType *Int32 = IntegerType::get(C, 32); + auto *Add = BinaryOperator::CreateAdd(PoisonValue::get(Int32), + PoisonValue::get(Int32)); VPValue ChainOp; VPValue VecOp; VPValue CondOp; - VPReductionRecipe Recipe(RecurrenceDescriptor(), nullptr, &ChainOp, &CondOp, + VPReductionRecipe Recipe(RecurrenceDescriptor(), Add, &ChainOp, &CondOp, &VecOp, false); EXPECT_TRUE(isa(&Recipe)); VPRecipeBase *BaseR = &Recipe; EXPECT_TRUE(isa(BaseR)); + delete Add; } TEST(VPRecipeTest, CastVPReductionEVLRecipeToVPUser) { LLVMContext C; + IntegerType *Int32 = IntegerType::get(C, 32); + auto *Add = BinaryOperator::CreateAdd(PoisonValue::get(Int32), + PoisonValue::get(Int32)); VPValue ChainOp; VPValue VecOp; VPValue CondOp; - VPReductionRecipe Recipe(RecurrenceDescriptor(), nullptr, &ChainOp, &CondOp, + VPReductionRecipe Recipe(RecurrenceDescriptor(), Add, &ChainOp, &CondOp, &VecOp, false); VPValue EVL; VPReductionEVLRecipe EVLRecipe(Recipe, EVL, &CondOp); EXPECT_TRUE(isa(&EVLRecipe)); VPRecipeBase *BaseR = &EVLRecipe; EXPECT_TRUE(isa(BaseR)); + delete Add; } struct VPDoubleValueDef : public VPRecipeBase {