@@ -1424,8 +1424,8 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
1424
1424
1425
1425
if (!BS.tryScheduleBundle (VL, this , VL0)) {
1426
1426
DEBUG (dbgs () << " SLP: We are not able to schedule this bundle!\n " );
1427
- assert ((!BS.getScheduleData (VL[ 0 ] ) ||
1428
- !BS.getScheduleData (VL[ 0 ] )->isPartOfBundle ()) &&
1427
+ assert ((!BS.getScheduleData (VL0 ) ||
1428
+ !BS.getScheduleData (VL0 )->isPartOfBundle ()) &&
1429
1429
" tryScheduleBundle should cancelScheduling on failure" );
1430
1430
newTreeEntry (VL, false , UserTreeIdx);
1431
1431
return ;
@@ -2797,7 +2797,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
2797
2797
V = Builder.CreateICmp (P0, L, R);
2798
2798
2799
2799
E->VectorizedValue = V;
2800
- propagateIRFlags (E->VectorizedValue , E->Scalars );
2800
+ propagateIRFlags (E->VectorizedValue , E->Scalars , VL0 );
2801
2801
++NumVectorInstructions;
2802
2802
return V;
2803
2803
}
@@ -2861,7 +2861,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
2861
2861
BinaryOperator *BinOp = cast<BinaryOperator>(VL0);
2862
2862
Value *V = Builder.CreateBinOp (BinOp->getOpcode (), LHS, RHS);
2863
2863
E->VectorizedValue = V;
2864
- propagateIRFlags (E->VectorizedValue , E->Scalars );
2864
+ propagateIRFlags (E->VectorizedValue , E->Scalars , VL0 );
2865
2865
++NumVectorInstructions;
2866
2866
2867
2867
if (Instruction *I = dyn_cast<Instruction>(V))
@@ -2974,7 +2974,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
2974
2974
// ctlz,cttz and powi are special intrinsics whose second argument is
2975
2975
// a scalar. This argument should not be vectorized.
2976
2976
if (hasVectorInstrinsicScalarOpd (IID, 1 ) && j == 1 ) {
2977
- CallInst *CEI = cast<CallInst>(E-> Scalars [ 0 ] );
2977
+ CallInst *CEI = cast<CallInst>(VL0 );
2978
2978
ScalarArg = CEI->getArgOperand (j);
2979
2979
OpVecs.push_back (CEI->getArgOperand (j));
2980
2980
continue ;
@@ -3004,7 +3004,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
3004
3004
ExternalUses.push_back (ExternalUser (ScalarArg, cast<User>(V), 0 ));
3005
3005
3006
3006
E->VectorizedValue = V;
3007
- propagateIRFlags (E->VectorizedValue , E->Scalars );
3007
+ propagateIRFlags (E->VectorizedValue , E->Scalars , VL0 );
3008
3008
++NumVectorInstructions;
3009
3009
return V;
3010
3010
}
@@ -3673,7 +3673,7 @@ void BoUpSLP::BlockScheduling::resetSchedule() {
3673
3673
" tried to reset schedule on block which has not been scheduled" );
3674
3674
for (Instruction *I = ScheduleStart; I != ScheduleEnd; I = I->getNextNode ()) {
3675
3675
doForAllOpcodes (I, [this ](ScheduleData *SD) {
3676
- assert (isInSchedulingRegion (SD) &&
3676
+ assert (isInSchedulingRegion (SD) &&
3677
3677
" ScheduleData not in scheduling region" );
3678
3678
SD->IsScheduled = false ;
3679
3679
SD->resetUnscheduledDeps ();
0 commit comments