Index: src/IceTargetLoweringARM32.cpp |
diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp |
index 85e0a65214283b6b5cd6d782c2774c987a1afd19..5687a788101e6bb9c0ccf29d9c5cd34dbb20326a 100644 |
--- a/src/IceTargetLoweringARM32.cpp |
+++ b/src/IceTargetLoweringARM32.cpp |
@@ -446,9 +446,15 @@ void TargetARM32::genTargetHelperCallFor(Inst *Instr) { |
switch (Op) { |
default: |
break; |
+ case InstArithmetic::Ashr: |
case InstArithmetic::Fdiv: |
- case InstArithmetic::Udiv: |
+ case InstArithmetic::Frem: |
+ case InstArithmetic::Lshr: |
case InstArithmetic::Sdiv: |
+ case InstArithmetic::Shl: |
+ case InstArithmetic::Srem: |
+ case InstArithmetic::Udiv: |
+ case InstArithmetic::Urem: |
scalarizeArithmetic(Op, Dest, Instr->getSrc(0), Instr->getSrc(1)); |
Instr->setDeleted(); |
return; |
@@ -5036,10 +5042,6 @@ void TargetARM32::lowerIntrinsicCall(const InstIntrinsicCall *Instr) { |
case Intrinsics::Fabs: { |
Type DestTy = Dest->getType(); |
Variable *T = makeReg(DestTy); |
- if (isVectorType(DestTy)) { |
- UnimplementedLoweringError(this, Instr); |
- return; |
- } |
_vabs(T, legalizeToReg(Instr->getArg(0))); |
_mov(Dest, T); |
return; |