Go to file
Nadav Rotem 34ca89afa8 This patch addresses the problem of poor code generation for the zext
v8i8 -> v8i32 on AVX machines. The codegen often scalarizes ANY_EXTEND nodes.
The DAGCombiner has two optimizations that can mitigate the problem. First,
if all of the operands of a BUILD_VECTOR node are extracted from an ZEXT/ANYEXT
nodes, then it is possible to create a new simplified BUILD_VECTOR which uses
UNDEFS/ZERO values to eliminate the scalar ZEXT/ANYEXT nodes.
Second, another dag combine optimization lowers BUILD_VECTOR into a shuffle
vector instruction.

In the case of zext v8i8->v8i32 on AVX, a value in an XMM register is to be
shuffled into a wide YMM register.

This patch modifes the second optimization and allows the creation of
shuffle vectors even when the newly generated vector and the original vector
from which we extract the values are of different types.

llvm-svn: 150340
2012-02-12 15:05:31 +00:00
clang Fix broken link. I believe this has been broken for at least 7 months. 2012-02-12 09:11:39 +00:00
compiler-rt Back out some changes that accidentally committed. 2012-02-10 16:41:46 +00:00
debuginfo-tests Revert previous patch as the corresponding clang patch was reverted. 2012-01-26 07:01:33 +00:00
libclc Update repository paths. 2012-01-08 22:31:18 +00:00
libcxx Fix up narrowing conversions in switch statement. 2012-02-08 19:15:06 +00:00
libcxxabi __gxx_personality_v0 and __cxa_call_unexpected are complete on darwin and I *think* linux (not positive), but still unimplemented on arm. 2012-02-03 20:53:52 +00:00
lld Add support for UndefinedAtom in yaml and native format. Add test cases with undefined atoms 2012-02-07 02:59:54 +00:00
lldb Made the "--no-inlines" option on 2012-02-11 01:22:21 +00:00
llvm This patch addresses the problem of poor code generation for the zext 2012-02-12 15:05:31 +00:00
polly CodeGen: Maintain a valid CFG during code generation 2012-02-12 12:09:53 +00:00