Causes regressions on Bowser's Fury.
@@ -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;
@@ -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