[JIT] Fix incorrect definition for constant VectorConvertX2X

This commit is contained in:
DrChat 2018-03-02 19:03:48 -06:00
parent 3a8f8f2ecb
commit 894bbf9e26
3 changed files with 4 additions and 5 deletions

View File

@ -702,8 +702,7 @@ bool ConstantPropagationPass::Run(HIRBuilder* builder) {
if (i->src1.value->IsConstant()) { if (i->src1.value->IsConstant()) {
v->set_zero(VEC128_TYPE); v->set_zero(VEC128_TYPE);
v->VectorConvertF2I(i->src1.value, v->VectorConvertF2I(i->src1.value,
!!(i->flags & ARITHMETIC_UNSIGNED), !!(i->flags & ARITHMETIC_UNSIGNED));
!!(i->flags & ARITHMETIC_SATURATE));
i->Remove(); i->Remove();
} }
break; break;
@ -711,7 +710,7 @@ bool ConstantPropagationPass::Run(HIRBuilder* builder) {
if (i->src1.value->IsConstant()) { if (i->src1.value->IsConstant()) {
v->set_zero(VEC128_TYPE); v->set_zero(VEC128_TYPE);
v->VectorConvertI2F(i->src1.value, v->VectorConvertI2F(i->src1.value,
!!(i->flags & ARITHMETIC_SATURATE)); !!(i->flags & ARITHMETIC_UNSIGNED));
i->Remove(); i->Remove();
} }
break; break;

View File

@ -1090,7 +1090,7 @@ void Value::VectorConvertI2F(Value* other, bool is_unsigned) {
} }
} }
void Value::VectorConvertF2I(Value* other, bool is_unsigned, bool saturate) { void Value::VectorConvertF2I(Value* other, bool is_unsigned) {
assert_true(type == VEC128_TYPE); assert_true(type == VEC128_TYPE);
// FIXME(DrChat): This does not saturate! // FIXME(DrChat): This does not saturate!

View File

@ -527,7 +527,7 @@ class Value {
void VectorCompareUGT(Value* other, TypeName type); void VectorCompareUGT(Value* other, TypeName type);
void VectorCompareUGE(Value* other, TypeName type); void VectorCompareUGE(Value* other, TypeName type);
void VectorConvertI2F(Value* other, bool is_unsigned); void VectorConvertI2F(Value* other, bool is_unsigned);
void VectorConvertF2I(Value* other, bool is_unsigned, bool saturate); void VectorConvertF2I(Value* other, bool is_unsigned);
void VectorShl(Value* other, TypeName type); void VectorShl(Value* other, TypeName type);
void VectorShr(Value* other, TypeName type); void VectorShr(Value* other, TypeName type);
void VectorRol(Value* other, TypeName type); void VectorRol(Value* other, TypeName type);