X86 target specific DAG combine: turn build_vector (load x), (load x+4),
authorEvan Cheng <evan.cheng@apple.com>
Fri, 7 Jul 2006 08:33:52 +0000 (08:33 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 7 Jul 2006 08:33:52 +0000 (08:33 +0000)
commit206ee9d86cd4e78176fad6bfa2b016023edf5df7
treefd85a53b47cbc9c02e71df3c1b87d20615822d24
parent94aa7f3ba87e39f77d57f7f8917cebdff5492b29
X86 target specific DAG combine: turn build_vector (load x), (load x+4),
(load x+8), (load x+12), <0, 1, 2, 3> to a single 128-bit load (aligned and
unaligned).

e.g.

__m128 test(float a, float b, float c, float d) {
  return _mm_set_ps(d, c, b, a);
}

_test:
        movups 4(%esp), %xmm0
        ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29042 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrSSE.td