[AArch64] Fix move_lo_quad_<mode> move

Sofiane Naci sofiane.naci@arm.com
Tue Jun 11 13:45:00 GMT 2013


Hi,

This patch fixes a bug in the move_lo_quad_<mode> pattern.

The pattern, shown below, issues a scalar MOV instruction for vector modes:

(define_insn "move_lo_quad_<mode>"
  [(set (match_operand:VQ 0 "register_operand" "=w,w,w")
        (vec_concat:VQ
	  (match_operand:<VHALF> 1 "register_operand" "w,r,r")
	  (vec_duplicate:<VHALF> (const_int 0))))]
  "TARGET_SIMD"
  "@
   mov\\t%d0, %d1
   fmov\t%d0, %1
   ...

This is fixed by using DUP for the first alternative instead.

This passes the full regression test suite in aarch64-elf.

OK for trunk?

-----
Thanks
Sofiane
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64-mov-lo-quad-fix.patch
Type: application/octet-stream
Size: 938 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130611/81b4547c/attachment.obj>


More information about the Gcc-patches mailing list