llvm-project/llvm/lib
Simon Pilgrim a45da385f8 [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

llvm-svn: 273848
2016-06-27 07:44:32 +00:00
..
Analysis [ConstantFolding] Fix bitcast vector of i1. 2016-06-27 06:42:54 +00:00
AsmParser Remangle intrinsics names when types are renamed 2016-06-24 15:10:29 +00:00
Bitcode Remangle intrinsics names when types are renamed 2016-06-24 15:10:29 +00:00
CodeGen Use isPositionIndependent predicate. NFC. 2016-06-26 22:38:44 +00:00
DebugInfo [CodeView] Healthy paranoia around strings 2016-06-24 19:34:41 +00:00
ExecutionEngine Fix lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp for r273701 2016-06-24 22:38:30 +00:00
Fuzzer [libfuzzer] moving is_ascii handler inside mutation dispatcher. 2016-06-23 20:44:48 +00:00
IR Apply clang-tidy's modernize-loop-convert to most of lib/IR. 2016-06-26 14:10:56 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LTO [UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael. 2016-06-22 19:50:42 +00:00
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
MC Apply clang-tidy's modernize-loop-convert to lib/MC. 2016-06-26 14:49:00 +00:00
Object [Object, COFF] An import data directory might not consist soley of imports 2016-06-26 04:36:32 +00:00
ObjectYAML [obj2yaml] [yaml2obj] Support for MachO Universal binaries 2016-06-24 20:42:28 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [PM] Port float2int to the new pass manager 2016-06-24 23:32:02 +00:00
ProfileData [Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC) 2016-06-21 22:22:33 +00:00
Support [APInt] Don't shift into the sign bit 2016-06-24 21:15:36 +00:00
TableGen Avoid copies of std::strings and APInt/APFloats where we only read from it 2016-06-08 10:01:20 +00:00
Target [X86][AVX] Peek through bitcasts to find the source of broadcasts 2016-06-27 07:44:32 +00:00
Transforms [CodeExtractor] Merge DEBUG statements in an attempt to fix the msvc 2016-06-26 13:39:33 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00