| 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
|
|
|