[AVX] If the data which is going to be saved is already in two XMM registers
authorNadav Rotem <nadav.rotem@intel.com>
Thu, 11 Aug 2011 16:41:21 +0000 (16:41 +0000)
committerNadav Rotem <nadav.rotem@intel.com>
Thu, 11 Aug 2011 16:41:21 +0000 (16:41 +0000)
commit5e742a3e1b29104fcadc26286f6daa6c450f87d9
treeff212dc32e40b08dbbd2b39b49d0445893577ccb
parent7eba85eb86e349a3e707dd6ffa52b039fb2c28e0
[AVX] If the data which is going to be saved is already in two XMM registers
(for example, after integer operation), do not pack the registers into a YMM
before saving. Its better to save as two XMM registers.

Before:
                vinsertf128         $1, %xmm3, %ymm0, %ymm3
                vinsertf128         $0, %xmm1, %ymm3, %ymm1
                vmovaps              %ymm1, 416(%rsp)

After:
                vmovaps              %xmm3, 416+16(%rsp)
                vmovaps              %xmm1, 416(%rsp)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137308 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx-insert.ll [new file with mode: 0644]