https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112971
--- Comment #3 from Robin Dapp <rdapp at gcc dot gnu.org> --- In match.pd we do something like this: ;; Function e (e, funcdef_no=0, decl_uid=2751, cgraph_uid=1, symbol_order=4) Pass statistics of "forwprop": ---------------- Matching expression match.pd:2771, gimple-match-2.cc:35 Matching expression match.pd:2774, gimple-match-1.cc:66 Matching expression match.pd:2781, gimple-match-2.cc:96 Aborting expression simplification due to deep recursion Aborting expression simplification due to deep recursion Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 Applying pattern match.pd:6784, gimple-match-5.cc:1742 gimple_simplified to _53 = { 0, ... } & { 8, 7, 6, ... }; _63 = { 0, ... } & { -9, -8, -7, ... }; _52 = { 0, ... } & { 8, 7, 6, ... }; _74 = { 0, ... } & { -9, -8, -7, ... }; _38 = { 0, ... } & { 8, 7, 6, ... }; _40 = { 0, ... } & { -9, -8, -7, ... }; _55 = { 0, ... } & { 8, 7, 6, ... }; _57 = { 0, ... } & { -9, -8, -7, ... }; _65 = { 0, ... } & { 8, 7, 6, ... }; _72 = { 0, ... } & { -9, -8, -7, ... }; _32 = { 0, ... } & { 8, 7, 6, ... }; mask__6.19_61 = _32 == { 0, ... }; That doesn't look particularly backend related but we're trying to simplify a mask so you never know...