[X86, AVX] replace vextractf128 intrinsics with generic shuffles
authorSanjay Patel <spatel@rotateright.com>
Thu, 12 Mar 2015 15:15:19 +0000 (15:15 +0000)
committerSanjay Patel <spatel@rotateright.com>
Thu, 12 Mar 2015 15:15:19 +0000 (15:15 +0000)
commitb4c1547749853c584a1988069f8c3e9d594475c7
tree0ecfc40821c999aecf7336be03bdf799a9b0efba
parente6a494a4bca68865cabdc4331abcf0441714c49a
[X86, AVX] replace vextractf128 intrinsics with generic shuffles

Now that we've replaced the vinsertf128 intrinsics,
do the same for their extract twins.

This is very much like D8086 (checked in at r231794):
We want to replace as much custom x86 shuffling via intrinsics
as possible because pushing the code down the generic shuffle
optimization path allows for better codegen and less complexity
in LLVM.

This is also the LLVM sibling to the cfe D8275 patch.

Differential Revision: http://reviews.llvm.org/D8276

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232045 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsX86.td
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/IR/AutoUpgrade.cpp
test/CodeGen/X86/avx-intrinsics-x86-upgrade.ll
test/CodeGen/X86/avx-intrinsics-x86.ll