From c9337a4ae45639c0d5b6c83c30d098878f3c344a Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Sun, 11 Apr 2021 04:14:55 -0300
Subject: [PATCH] shader: Apply sign bit in FCMP (imm)

---
 .../frontend/maxwell/translate/impl/floating_point_compare.cpp  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_compare.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_compare.cpp
index 80109ca0e5..7127ebf542 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_compare.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_compare.cpp
@@ -49,7 +49,7 @@ void TranslatorVisitor::FCMP_imm(u64 insn) {
     const u32 sign_bit{fcmp.is_negative != 0 ? (1U << 31) : 0};
     const u32 value{static_cast<u32>(fcmp.value) << 12};
 
-    FCMP(*this, insn, ir.Imm32(value), GetFloatReg39(insn));
+    FCMP(*this, insn, ir.Imm32(value | sign_bit), GetFloatReg39(insn));
 }
 
 } // namespace Shader::Maxwell