emit_x64_vector: -0x80000000 isn't -0x80000000

This commit is contained in:
MerryMage
2018-07-24 18:45:45 +01:00
parent b455b566e7
commit 8f4c1a8558
3 changed files with 15 additions and 3 deletions

View File

@@ -2252,7 +2252,7 @@ void EmitX64::EmitVectorSignedSaturatedNarrowToSigned64(EmitContext& ctx, IR::In
EmitOneArgumentFallbackWithSaturation(code, ctx, inst, [](VectorArray<s32>& result, const VectorArray<s64>& a) {
bool qc_flag = false;
for (size_t i = 0; i < a.size(); ++i) {
const s64 saturated = std::clamp<s64>(a[i], -0x80000000, 0x7FFFFFFF);
const s64 saturated = std::clamp<s64>(a[i], -s64(0x80000000), s64(0x7FFFFFFF));
result[i] = static_cast<s32>(saturated);
qc_flag |= saturated != a[i];
}