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

Spencer Abson <sabson at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sabson at gcc dot gnu.org

--- Comment #2 from Spencer Abson <sabson at gcc dot gnu.org> ---
Confirmed.

It looks like we also miss AND+PTEST because the existing combine matches the
(and (<logical> ((a) (b)) (c)) canonicalisation of predicated ior and xor,
where c is all-true.

AND can also use:

>;; Predicate AND.  We can reuse one of the inputs as the GP.
>;; Doubling the second operand is the preferred implementation
>;; of the MOV alias, so we use that instead of %1/z, %1, %2.

(aarch64-sve.md)

Which is the form we end up with from ACLE code if it's predicate is all-true,
and from auto-vectorized code (though I will need to confirm the latter).

Reply via email to