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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |easyhack

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
```
        /* We're duplicating a single value, but can't do better than
           force it to memory and load from there.  This handles things
           like symbolic constants.  */
        elt_value = CONST_VECTOR_ENCODED_ELT (src, 0);

      if (elt_value)
        {
          /* Load the element from memory if we can, otherwise move it into
             a register and use a DUP.  */
          rtx op = force_const_mem (elt_mode, elt_value);
          if (!op)
            op = force_reg (elt_mode, elt_value);
          return expand_vector_broadcast (mode, op);
        }
```

Seems like we are forcing to constant memory too early ...

Reply via email to