| Index: src/IceTargetLoweringX8632.cpp
|
| diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
|
| index 1cb079e0ebffff07a102638c7dba97ec9c0c323d..0a41cc8d950a0c2aae25a1074c745ccc5be6d9d5 100644
|
| --- a/src/IceTargetLoweringX8632.cpp
|
| +++ b/src/IceTargetLoweringX8632.cpp
|
| @@ -3094,6 +3094,10 @@ void TargetX8632::lowerIntrinsicCall(const InstIntrinsicCall *Instr) {
|
| Type Ty = Src->getType();
|
| Variable *Dest = Instr->getDest();
|
| Variable *T = makeVectorOfFabsMask(Ty);
|
| + // The pand instruction operates on an m128 memory operand, so if
|
| + // Src is an f32 or f64, we need to make sure it's in a register.
|
| + if (!isVectorType(Ty))
|
| + Src = legalizeToVar(Src);
|
| _pand(T, Src);
|
| if (isVectorType(Ty))
|
| _movp(Dest, T);
|
|
|