From 8f3043c3cf6f6baa1d235e6789533fbf567d1c2d Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 26 May 2021 18:42:37 -0300
Subject: [PATCH] Revert "glasm: Skip phi moves on undefined instructions"

Causes regressions on Bowser's Fury.
---
 .../backend/glasm/emit_glasm_not_implemented.cpp    |  4 +---
 src/shader_recompiler/frontend/ir/value.h           | 13 -------------
 2 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
index e6a880a365..95bcbd750b 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
@@ -58,9 +58,7 @@ void EmitPhiMove(EmitContext& ctx, const IR::Value& phi_value, const IR::Value&
     }
     const Register phi_reg{ctx.reg_alloc.Consume(IR::Value{&phi})};
     const Value eval_value{ctx.reg_alloc.Consume(value)};
-    if (!value.IsImmediate() && IR::IsUndef(RegAlloc::AliasInst(*value.Inst()))) {
-        return;
-    }
+
     if (phi_reg == eval_value) {
         return;
     }
diff --git a/src/shader_recompiler/frontend/ir/value.h b/src/shader_recompiler/frontend/ir/value.h
index 090cc17395..0c6bf684d0 100644
--- a/src/shader_recompiler/frontend/ir/value.h
+++ b/src/shader_recompiler/frontend/ir/value.h
@@ -395,17 +395,4 @@ inline f64 Value::F64() const {
     return inst.GetOpcode() == Opcode::Phi;
 }
 
-[[nodiscard]] inline bool IsUndef(const Inst& inst) {
-    switch (inst.GetOpcode()) {
-    case Opcode::UndefU1:
-    case Opcode::UndefU8:
-    case Opcode::UndefU16:
-    case Opcode::UndefU32:
-    case Opcode::UndefU64:
-        return true;
-    default:
-        return false;
-    }
-}
-
 } // namespace Shader::IR