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.

Reply via email to