llvm/test/CodeGen
Simon Pilgrim 7c1d489b88 [X86][AVX] Peek through bitcasts to find the source of broadcasts
AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors.

This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected.

Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273848 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-27 07:44:32 +00:00
..
AArch64 MachineScheduler: Fully compare top/bottom candidates 2016-06-25 00:23:00 +00:00
AMDGPU AMDGPU/R600: Fix GlobalValue regressions. 2016-06-25 18:24:16 +00:00
ARM Add support for musl-libc on ARM Linux. 2016-06-24 21:14:33 +00:00
BPF [BPF] Remove exit-on-error from tests (PR27768, PR27769) 2016-05-30 08:28:34 +00:00
Generic Move CodeGen test from Generic to X86 specific directory 2016-06-10 19:14:01 +00:00
Hexagon [Hexagon] Simplify (+fix) instruction selection for indexed loads/stores 2016-06-24 21:27:17 +00:00
Inputs [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
Lanai [lanai] Change reloc to use PIC_ by default and cleanup. 2016-05-20 21:41:53 +00:00
Mips Mips: Fix access to private functions. 2016-06-27 03:19:40 +00:00
MIR [mips][mips16] Fix machine verifier errors about incorrect register classes on load/stores. 2016-06-16 10:20:59 +00:00
MSP430 MSP430InstrInfo::loadRegFromStackSlot forgets to set register def. 2016-02-24 15:15:02 +00:00
NVPTX [NVPTX] Improve lowering of byval args of device functions. 2016-06-21 20:30:26 +00:00
PowerPC MachineScheduler: Fully compare top/bottom candidates 2016-06-25 00:23:00 +00:00
SPARC Codegen: Fix broken assumption in Tail Merge. 2016-06-24 18:16:36 +00:00
SystemZ Uses shouldAssumeDSOLocal. 2016-06-23 21:18:59 +00:00
Thumb [Thumb] Fix off-by-one error in r272007 2016-06-14 13:33:07 +00:00
Thumb2 Codegen: Fix broken assumption in Tail Merge. 2016-06-24 18:16:36 +00:00
WebAssembly [WebAssembly] Emit type signatures for declared functions 2016-06-03 18:34:36 +00:00
WinEH [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
X86 [X86][AVX] Peek through bitcasts to find the source of broadcasts 2016-06-27 07:44:32 +00:00
XCore IR: Introduce Module::global_objects(). 2016-06-22 20:29:42 +00:00