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

Tamar Christina <tnfchris at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |tnfchris at gcc dot 
gnu.org
             Status|NEW                         |ASSIGNED

--- Comment #7 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #6)
> This seems like it fixes it:
> ```
> [apinski@xeond2 gcc]$ git diff
> diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
> index 071058dbeb3..2a314997f88 100644
> --- a/gcc/config/aarch64/aarch64.md
> +++ b/gcc/config/aarch64/aarch64.md
> @@ -7476,7 +7476,7 @@ (define_expand "copysign<GPF:mode>3"
>      {
>        emit_insn (gen_ior<vq_int_equiv>3 (
>         lowpart_subreg (<VQ_INT_EQUIV>mode, operands[0], <MODE>mode),
> -       lowpart_subreg (<VQ_INT_EQUIV>mode, operands[1], <MODE>mode),
> +       force_lowpart_subreg (<VQ_INT_EQUIV>mode, operands[1], <MODE>mode),
>         v_bitmask));
>        DONE;
>      }
> 
> ```
> 
> Which means it was caused by r14-5289-ged2e058c58ab06

But operand1 is marked as `register_operand` which means whatever did the
expansion didn't honor the predicate. i.e. the input wasn't legitimized..

But mine.

Reply via email to