@@ -1165,29 +1165,35 @@ TEST_F(VPRecipeTest, MayHaveSideEffectsAndMayReadWriteMemory) {
11651165 }
11661166
11671167 {
1168+ auto *Add = BinaryOperator::CreateAdd (PoisonValue::get (Int32),
1169+ PoisonValue::get (Int32));
11681170 VPValue *ChainOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 1 ));
11691171 VPValue *VecOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 2 ));
11701172 VPValue *CondOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 3 ));
1171- VPReductionRecipe Recipe (RecurrenceDescriptor (), nullptr , ChainOp, CondOp,
1173+ VPReductionRecipe Recipe (RecurrenceDescriptor (), Add , ChainOp, CondOp,
11721174 VecOp, false );
11731175 EXPECT_FALSE (Recipe.mayHaveSideEffects ());
11741176 EXPECT_FALSE (Recipe.mayReadFromMemory ());
11751177 EXPECT_FALSE (Recipe.mayWriteToMemory ());
11761178 EXPECT_FALSE (Recipe.mayReadOrWriteMemory ());
1179+ delete Add;
11771180 }
11781181
11791182 {
1183+ auto *Add = BinaryOperator::CreateAdd (PoisonValue::get (Int32),
1184+ PoisonValue::get (Int32));
11801185 VPValue *ChainOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 1 ));
11811186 VPValue *VecOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 2 ));
11821187 VPValue *CondOp = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 3 ));
1183- VPReductionRecipe Recipe (RecurrenceDescriptor (), nullptr , ChainOp, CondOp,
1188+ VPReductionRecipe Recipe (RecurrenceDescriptor (), Add , ChainOp, CondOp,
11841189 VecOp, false );
11851190 VPValue *EVL = Plan.getOrAddLiveIn (ConstantInt::get (Int32, 4 ));
11861191 VPReductionEVLRecipe EVLRecipe (Recipe, *EVL, CondOp);
11871192 EXPECT_FALSE (EVLRecipe.mayHaveSideEffects ());
11881193 EXPECT_FALSE (EVLRecipe.mayReadFromMemory ());
11891194 EXPECT_FALSE (EVLRecipe.mayWriteToMemory ());
11901195 EXPECT_FALSE (EVLRecipe.mayReadOrWriteMemory ());
1196+ delete Add;
11911197 }
11921198
11931199 {
@@ -1529,28 +1535,34 @@ TEST_F(VPRecipeTest, dumpRecipeUnnamedVPValuesNotInPlanOrBlock) {
15291535
15301536TEST_F (VPRecipeTest, CastVPReductionRecipeToVPUser) {
15311537 IntegerType *Int32 = IntegerType::get (C, 32 );
1538+ auto *Add = BinaryOperator::CreateAdd (PoisonValue::get (Int32),
1539+ PoisonValue::get (Int32));
15321540 VPValue *ChainOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 1 ));
15331541 VPValue *VecOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 2 ));
15341542 VPValue *CondOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 3 ));
1535- VPReductionRecipe Recipe (RecurrenceDescriptor (), nullptr , ChainOp, CondOp,
1543+ VPReductionRecipe Recipe (RecurrenceDescriptor (), Add , ChainOp, CondOp,
15361544 VecOp, false );
15371545 EXPECT_TRUE (isa<VPUser>(&Recipe));
15381546 VPRecipeBase *BaseR = &Recipe;
15391547 EXPECT_TRUE (isa<VPUser>(BaseR));
1548+ delete Add;
15401549}
15411550
15421551TEST_F (VPRecipeTest, CastVPReductionEVLRecipeToVPUser) {
15431552 IntegerType *Int32 = IntegerType::get (C, 32 );
1553+ auto *Add = BinaryOperator::CreateAdd (PoisonValue::get (Int32),
1554+ PoisonValue::get (Int32));
15441555 VPValue *ChainOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 1 ));
15451556 VPValue *VecOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 2 ));
15461557 VPValue *CondOp = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 3 ));
1547- VPReductionRecipe Recipe (RecurrenceDescriptor (), nullptr , ChainOp, CondOp,
1558+ VPReductionRecipe Recipe (RecurrenceDescriptor (), Add , ChainOp, CondOp,
15481559 VecOp, false );
15491560 VPValue *EVL = getPlan ().getOrAddLiveIn (ConstantInt::get (Int32, 0 ));
15501561 VPReductionEVLRecipe EVLRecipe (Recipe, *EVL, CondOp);
15511562 EXPECT_TRUE (isa<VPUser>(&EVLRecipe));
15521563 VPRecipeBase *BaseR = &EVLRecipe;
15531564 EXPECT_TRUE (isa<VPUser>(BaseR));
1565+ delete Add;
15541566}
15551567} // namespace
15561568
0 commit comments