Index: src/IceTargetLoweringX86BaseImpl.h |
diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h |
index 8d838d49df076616430844bed42db8f022b8996a..6e338e69bf8aabab1de003ca51f6fc2ecfdeac96 100644 |
--- a/src/IceTargetLoweringX86BaseImpl.h |
+++ b/src/IceTargetLoweringX86BaseImpl.h |
@@ -6061,41 +6061,6 @@ void TargetX86Base<TraitsType>::lowerSwitch(const InstSwitch *Instr) { |
_br(DefaultTarget); |
} |
-template <typename TraitsType> |
-void TargetX86Base<TraitsType>::scalarizeArithmetic(InstArithmetic::OpKind Kind, |
- Variable *Dest, |
- Operand *Src0, |
- Operand *Src1) { |
- assert(isVectorType(Dest->getType())); |
- Type Ty = Dest->getType(); |
- Type ElementTy = typeElementType(Ty); |
- SizeT NumElements = typeNumElements(Ty); |
- |
- Operand *T = Ctx->getConstantUndef(Ty); |
- for (SizeT I = 0; I < NumElements; ++I) { |
- Constant *Index = Ctx->getConstantInt32(I); |
- |
- // Extract the next two inputs. |
- Variable *Op0 = Func->makeVariable(ElementTy); |
- Context.insert<InstExtractElement>(Op0, Src0, Index); |
- Variable *Op1 = Func->makeVariable(ElementTy); |
- Context.insert<InstExtractElement>(Op1, Src1, Index); |
- |
- // Perform the arithmetic as a scalar operation. |
- Variable *Res = Func->makeVariable(ElementTy); |
- auto *Arith = Context.insert<InstArithmetic>(Kind, Res, Op0, Op1); |
- // We might have created an operation that needed a helper call. |
- genTargetHelperCallFor(Arith); |
- |
- // Insert the result into position. |
- Variable *DestT = Func->makeVariable(Ty); |
- Context.insert<InstInsertElement>(DestT, T, Res, Index); |
- T = DestT; |
- } |
- |
- Context.insert<InstAssign>(Dest, T); |
-} |
- |
/// The following pattern occurs often in lowered C and C++ code: |
/// |
/// %cmp = fcmp/icmp pred <n x ty> %src0, %src1 |