Index: src/IceTargetLoweringX86BaseImpl.h |
diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h |
index d251e6a2756c66ed28d189e7e588ac38c7ed0771..5af7a7d65f7497f4a10c46399f6c09e6b315bc68 100644 |
--- a/src/IceTargetLoweringX86BaseImpl.h |
+++ b/src/IceTargetLoweringX86BaseImpl.h |
@@ -5748,7 +5748,12 @@ Variable *TargetX86Base<Machine>::makeVectorOfMinusOnes(Type Ty, |
Variable *MinusOnes = makeReg(Ty, RegNum); |
// Insert a FakeDef so the live range of MinusOnes is not overestimated. |
Context.insert<InstFakeDef>(MinusOnes); |
- _pcmpeq(MinusOnes, MinusOnes); |
+ if (Ty == IceType_f64) |
+ // pcmpeqq requires SSE 4.1, while pcmpeqd does the same job and only |
Jim Stichnoth
2015/12/20 18:42:23
Could you also note that f64 is (currently) used o
sehr
2016/01/07 18:53:12
Done.
|
+ // requires SSE2. |
+ _pcmpeq(MinusOnes, MinusOnes, IceType_f32); |
+ else |
+ _pcmpeq(MinusOnes, MinusOnes); |
return MinusOnes; |
} |