https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117000

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:5977b746db3925aaba37722f5312419d5f2968a5

commit r15-4194-g5977b746db3925aaba37722f5312419d5f2968a5
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Oct 8 09:01:01 2024 +0200

    tree-optimization/117000 - elide .REDUC_IOR with compare against zero

    The following adds a pattern to elide a .REDUC_IOR operation when
    the result is compared against zero with a cbranch.  I've resorted
    to using can_compare_p since that's what RTL expansion eventually
    checks - while GIMPLE allowed whole vector equality compares for long
    I'll notice vector lowering won't lower unsupported ones and RTL
    expansion doesn't seem to try using [u]cmp<vector-mode> optabs
    (and neither x86 nor aarch64 implements those).  There's cstore
    but no target implements that for vector modes either.

            PR tree-optimization/117000
            * match.pd (.REDUC_IOR !=/== 0): New pattern.
            * gimple-match-head.cc: Include memmodel.h and optabs.h.
            * generic-match-head.cc: Likewise.

            * gcc.target/i386/pr117000.c: New testcase.

Reply via email to