This patch is to merge movsd/movhpd pair written in intrinsics to movupd.
commit1af53f5a1d0fdf06b99bead0be6c58dc4b48d380
authorwmi <wmi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Apr 2014 21:14:09 +0000 (23 21:14 +0000)
committerwmi <wmi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Apr 2014 21:14:09 +0000 (23 21:14 +0000)
treea495f444550b6cf2eb191d4f93392de12bb78b4c
parentad668f69301bf1ae1563d6e84073cf7b62653f25
This patch is to merge movsd/movhpd pair written in intrinsics to movupd.
It is done in peephole, so it can only merge such pair when movsd/movhpd
are consecutive.

gcc/ChangeLog:

2014-04-23  Wei Mi  <wmi@google.com>

        * config/i386/i386.c (get_memref_parts): New function.
        (adjacent_mem_locations): Ditto.
        * config/i386/i386-protos.h: Add decl for adjacent_mem_locations.
        * config/i386/sse.md: Add define_peephole rule.

gcc/testsuite/ChangeLog:

2014-04-23  Wei Mi  <wmi@google.com>

        * gcc.target/i386/sse2-unaligned-mov.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google@209724 138bc75d-0d04-0410-961f-82ee72b054a4
gcc-4_8/gcc/config/i386/i386-protos.h
gcc-4_8/gcc/config/i386/i386.c
gcc-4_8/gcc/config/i386/sse.md
gcc-4_8/gcc/testsuite/gcc.target/i386/sse2-unaligned-mov.c [new file with mode: 0644]