On Mon, Mar 02, 2020 at 03:54:36PM +0100, Jakub Jelinek wrote:
> So, like this if it passes bootstrap/regtest?

Bootstrapped/regtested successfully on x86_64-linux and i686-linux.

> 2020-03-02  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR tree-optimization/93582
>       * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument.
>       * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result
>       members, initialize them in the constructor and if mask is non-NULL,
>       artificially push_partial_def {} for the portions of the mask that
>       contain zeros.
>       (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to
>       val and return (void *)-1.  Formatting fix.
>       (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization.
>       Formatting fix.
>       (vn_reference_lookup): Add mask argument.  If non-NULL, don't call
>       fully_constant_vn_reference_p nor vn_reference_lookup_1 and return
>       data.mask_result.
>       (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST
>       mask.
>       (visit_stmt): Formatting fix.
> 
>       * gcc.dg/tree-ssa/pr93582-10.c: New test.
>       * gcc.dg/pr93582.c: New test.
>       * gcc.c-torture/execute/pr93582.c: New test.

        Jakub

Reply via email to