@@ -9865,11 +9865,10 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
9865
9865
case Instruction::AShr:
9866
9866
case Instruction::And:
9867
9867
case Instruction::Or:
9868
- case Instruction::Xor:
9869
- case Instruction::Freeze: {
9868
+ case Instruction::Xor: {
9870
9869
auto GetScalarCost = [&](unsigned Idx) {
9871
9870
auto *VI = cast<Instruction>(UniqueValues[Idx]);
9872
- unsigned OpIdx = isa<UnaryOperator>(VI) || isa<FreezeInst>(VI) ? 0 : 1;
9871
+ unsigned OpIdx = isa<UnaryOperator>(VI) ? 0 : 1;
9873
9872
TTI::OperandValueInfo Op1Info = TTI::getOperandInfo(VI->getOperand(0));
9874
9873
TTI::OperandValueInfo Op2Info =
9875
9874
TTI::getOperandInfo(VI->getOperand(OpIdx));
@@ -9888,7 +9887,7 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
9888
9887
return CommonCost;
9889
9888
}
9890
9889
}
9891
- unsigned OpIdx = isa<UnaryOperator>(VL0) || isa<FreezeInst>(VL0) ? 0 : 1;
9890
+ unsigned OpIdx = isa<UnaryOperator>(VL0) ? 0 : 1;
9892
9891
TTI::OperandValueInfo Op1Info = getOperandInfo(E->getOperand(0));
9893
9892
TTI::OperandValueInfo Op2Info = getOperandInfo(E->getOperand(OpIdx));
9894
9893
return TTI->getArithmeticInstrCost(ShuffleOrOp, VecTy, CostKind, Op1Info,
@@ -10121,6 +10120,9 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef<Value *> VectorizedVals,
10121
10120
};
10122
10121
return GetCostDiff(GetScalarCost, GetVectorCost);
10123
10122
}
10123
+ case Instruction::Freeze: {
10124
+ return CommonCost;
10125
+ }
10124
10126
default:
10125
10127
llvm_unreachable("Unknown instruction");
10126
10128
}
0 commit comments