[X86, AVX] replace vinsertf128 intrinsics with generic shuffles
authorSanjay Patel <spatel@rotateright.com>
Tue, 10 Mar 2015 16:08:36 +0000 (16:08 +0000)
committerSanjay Patel <spatel@rotateright.com>
Tue, 10 Mar 2015 16:08:36 +0000 (16:08 +0000)
commit137e1f3f289a14153b31ea5dee1856d143305563
treebf1ca5be58d3bddbccd128e76d2277ac5a3ac0e7
parent7aace591243b5f0a704a6e6037531a04f9d707c2
[X86, AVX] replace vinsertf128 intrinsics with generic shuffles

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 the sibling patch for the Clang half of this change:
http://reviews.llvm.org/D8088

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231794 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
test/CodeGen/X86/avx-vinsertf128.ll
test/CodeGen/X86/unaligned-32-byte-memops.ll