https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125442
--- Comment #5 from Souradipto Das <souradiptodas6 at gmail dot com> --- (In reply to Kael Franco from comment #4) > Your match.pd and testsuite are missing the (a != 0) & ((a|b) != 0) check. Please look closely at attachment 64563. My patch uses the exact same macro iterator loop design: for bitop (bit_and bit_or) neeq (ne eq) Because of this, my patch already completely covers *both* cases simultaneously. The (a != 0) & ((a|b) != 0) logic was never missing; the macro iterator handles it natively, which is why the local testsuite runs successfully verified both paths. I do agree that capturing `integer_zerop@2` and returning `(neeq @0 @2)` is slightly cleaner than invoking `build_zero_cst`, but the core matching logic and coverage are identical.
