From a28fc2fba786aac489da3400f1575e6b2c6bfe9e Mon Sep 17 00:00:00 2001 From: George Hotz Date: Fri, 20 Feb 2026 17:09:18 +0800 Subject: [PATCH] hotfix: remove wrong symbolic rule --- test/null/test_uop_symbolic.py | 4 ---- tinygrad/uop/symbolic.py | 2 -- 2 files changed, 6 deletions(-) diff --git a/test/null/test_uop_symbolic.py b/test/null/test_uop_symbolic.py index 12c4158787..5f367c47ae 100644 --- a/test/null/test_uop_symbolic.py +++ b/test/null/test_uop_symbolic.py @@ -655,10 +655,6 @@ class TestSymbolic(unittest.TestCase): with self.assertRaises(AssertionError): self.helper_test_variable((31 * b + 1) % 18 + ((31 * b + 1) // 18) * 18, 1, 3101, "((b*31)+1)") - def test_div_mod_recombine_3level(self): - gidx = Variable("gidx", 0, 150527) - self.helper_test_variable(gidx//3%224*3 + gidx%3 + gidx//672*672, 0, 150527, "gidx") - def test_div_mod_recombine_with_gcd(self): b = Variable("b", 0, 100) exp = (16 * b + 2) % 18 + ((16 * b + 2) // 18) * 18 diff --git a/tinygrad/uop/symbolic.py b/tinygrad/uop/symbolic.py index 476c3ccf39..df4ae3699c 100644 --- a/tinygrad/uop/symbolic.py +++ b/tinygrad/uop/symbolic.py @@ -52,8 +52,6 @@ symbolic_simple = propagate_invalid + PatternMatcher([ lambda x,a,b,c: x//a if a.arg*c.arg==b.arg else None), # ((x//a)%c)+(x//a*c)*c = x//a. Note if a = 1 it degenerates to the one above ((UPat.var("x")//UPat.cvar("c1"))*UPat.cvar("c3")+UPat.var("x")%UPat.cvar("c1")*UPat.cvar("c2"), lambda x,c1,c2,c3: x*c2 if c1.arg*c2.arg==c3.arg else None), # (x%c1)*c2+(x//c1)*c3 = x*c2 if c1*c2==c3 - ((UPat.var("x")//UPat.cvar("a"))%UPat.cvar("b")*UPat.cvar("a")+UPat.var("x")%UPat.cvar("a"), - lambda x,a,b: x%(a*b)), # (x//a%b)*a + x%a = x%(a*b) ((UPat.var("y")+(UPat.var("x")//UPat.cvar("c"))*UPat.cvar("c"))+UPat.var("x")%UPat.cvar("c"), lambda y,x,c: y+x), ((UPat.var("y")+UPat.var("x")%UPat.cvar("c"))+(UPat.var("x")//UPat.cvar("c"))*UPat.cvar("c"), lambda y,x,c: y+x), ((UPat.var("y")+(UPat.var("x")//UPat.cvar("c1"))*UPat.cvar("c3"))+UPat.var("x")%UPat.cvar("c1")*UPat.cvar("c2"),