shader: recognize unconditional predicates in implication proofs

This commit is contained in:
nmzik
2026-10-13 04:15:48 +02:00
parent 50595d1c13
commit 34893dd8c8
2 changed files with 11 additions and 5 deletions
@@ -1187,7 +1187,7 @@ private:
bool Implies(Value guard, Value required) const {
guard = SimplifyGuard(guard);
required = required.Resolve();
if (EquivalentValue(m_program, guard, required)) return true;
if (required == Value(true) || EquivalentValue(m_program, guard, required)) return true;
const auto* test = required.TryInstruction();
if (test != nullptr && test->GetOpcode() == ValueOpcode::INotEqual32) {
for (uint32_t arg = 0; arg < 2u; ++arg)