Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index 7b977585b5c6e910cb6bc8f2e02f4b678c518d15..a6c09b12626287390c2db609e91831e2d8665d83 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -2057,6 +2057,7 @@ void TargetX8632::lowerCast(const InstCast *Inst) { |
Inst->getSrc(0)->getType() == IceType_v4f32); |
Operand *Src0RM = legalize(Inst->getSrc(0), Legal_Reg | Legal_Mem); |
Variable *T = makeReg(Dest->getType()); |
+ // TODO(stichnot): _cvt or _cvtt? |
jvoung (off chromium)
2014/09/08 17:27:05
seems like it should be cvtt to match the scalar b
Jim Stichnoth
2014/09/08 17:47:06
You're probably right. I wasn't sure since there
|
_cvt(T, Src0RM); |
_movp(Dest, T); |
} else if (Dest->getType() == IceType_i64) { |
@@ -2079,7 +2080,7 @@ void TargetX8632::lowerCast(const InstCast *Inst) { |
// t1.i32 = cvt Src0RM; t2.dest_type = t1; Dest = t2.dest_type |
Variable *T_1 = makeReg(IceType_i32); |
Variable *T_2 = makeReg(Dest->getType()); |
- _cvt(T_1, Src0RM); |
+ _cvtt(T_1, Src0RM); |
_mov(T_2, T_1); // T_1 and T_2 may have different integer types |
_mov(Dest, T_2); |
T_2->setPreferredRegister(T_1, true); |
@@ -2114,7 +2115,7 @@ void TargetX8632::lowerCast(const InstCast *Inst) { |
// t1.i32 = cvt Src0RM; t2.dest_type = t1; Dest = t2.dest_type |
Variable *T_1 = makeReg(IceType_i32); |
Variable *T_2 = makeReg(Dest->getType()); |
- _cvt(T_1, Src0RM); |
+ _cvtt(T_1, Src0RM); |
_mov(T_2, T_1); // T_1 and T_2 may have different integer types |
_mov(Dest, T_2); |
T_2->setPreferredRegister(T_1, true); |