[Bug target/36222] x86 fails to optimize out __v4si -> __m128i move

hjl dot tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri May 16 21:55:00 GMT 2008



------- Comment #7 from hjl dot tools at gmail dot com  2008-05-16 21:54 -------
find_reloads in reload.c has

  /* Special case a simple move with an input reload and a
     destination of a hard reg, if the hard reg is ok, use it.  */
  for (i = 0; i < n_reloads; i++) 
    if (rld[i].when_needed == RELOAD_FOR_INPUT
        && GET_CODE (PATTERN (insn)) == SET
        && REG_P (SET_DEST (PATTERN (insn)))
        && (SET_SRC (PATTERN (insn)) == rld[i].in
            || SET_SRC (PATTERN (insn)) == rld[i].in_reg)
        && !elimination_target_reg_p (SET_DEST (PATTERN (insn))))
      {    
        rtx dest = SET_DEST (PATTERN (insn));
        unsigned int regno = REGNO (dest);

If it can be extended to handle vector instructions, it will help this
bug.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36222



More information about the Gcc-bugs mailing list