diff --git a/tinygrad/uop/symbolic.py b/tinygrad/uop/symbolic.py index 68dfbb0b7c..f53b873e36 100644 --- a/tinygrad/uop/symbolic.py +++ b/tinygrad/uop/symbolic.py @@ -33,8 +33,8 @@ propagate_invalid = PatternMatcher([ for op in GroupOp.Binary-GroupOp.Comparison), # TODO: when can this happen? and is it always safe to just drop invalid? *((invalid_gate.alu(op, UPat.var("y")).named("alu"), lambda cond,x,y,alu,i: x.alu(alu.op,y)) for op in GroupOp.Comparison), - # invalid + y -> invalid same for other ops - *((invalid_pat.alu(op, UPat(dtype=dtypes.index)).named("alu"), lambda alu,i: i) for op in GroupOp.Binary-GroupOp.Comparison), + # alu with invalid -> invalid + *((invalid_pat.alu(op, UPat(dtype=dtypes.index)), lambda i: i) for op in GroupOp.Binary-GroupOp.Comparison), ]) symbolic_simple = propagate_invalid + PatternMatcher([