Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user