Because we promote SSE logical ops and loads to v2i64, we often end up generate
authorEvan Cheng <evan.cheng@apple.com>
Fri, 20 Jul 2007 00:27:43 +0000 (00:27 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 20 Jul 2007 00:27:43 +0000 (00:27 +0000)
commitb4162fd393ba22e118d6b1135bab593b4ddc049c
tree624c7905eccde5aff24a64cd8a463cf49c52ad50
parent102dc195b6b370abc62a80f887cd0761bb55cf8e
Because we promote SSE logical ops and loads to v2i64, we often end up generate
code that cross integer / floating point domains (e.g. generate pxor / pand for
logical ops on floating point value, movdqa to load / store floating point SSE
values). Given that, it's better to use movaps instead of movdqa and movups
instead of movdqu. They have the same latency but the "aps" variants are one
byte shorter.
If the domain crossing problem is a real performance issue, then we will have to
fix it with dynamic programming based isel.

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