| Index: src/IceTargetLoweringARM32.cpp
|
| diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp
|
| index 4b2dc98ef735465fb561cf2502a69a98df20d84d..474f9e13300531aac3ab6508b3c7b39e98c77532 100644
|
| --- a/src/IceTargetLoweringARM32.cpp
|
| +++ b/src/IceTargetLoweringARM32.cpp
|
| @@ -2809,6 +2809,8 @@ void TargetARM32::lowerArithmetic(const InstArithmetic *Instr) {
|
| case InstArithmetic::Sub:
|
| case InstArithmetic::And:
|
| case InstArithmetic::Or:
|
| + case InstArithmetic::Fmul:
|
| + case InstArithmetic::Mul:
|
| break;
|
| }
|
| }
|
| @@ -3110,7 +3112,11 @@ void TargetARM32::lowerArithmetic(const InstArithmetic *Instr) {
|
| }
|
| Variable *Src0R = Srcs.unswappedSrc0R(this);
|
| Variable *Src1R = Srcs.unswappedSrc1R(this);
|
| - _mul(T, Src0R, Src1R);
|
| + if (isVectorType(DestTy)) {
|
| + _vmul(T, Src0R, Src1R);
|
| + } else {
|
| + _mul(T, Src0R, Src1R);
|
| + }
|
| _mov(Dest, T);
|
| return;
|
| }
|
|
|