hanchenye-llvm-project/llvm/lib/Transforms
Sanjay Patel 75b5edf6a1 [InstCombine] allow undef elements when forming splat from chain of insertelements
We allow forming a splat (broadcast) shuffle, but we were conservatively limiting
that to cases where all elements of the vector are specified. It should be safe
from a codegen perspective to allow undefined lanes of the vector because the
expansion of a splat shuffle would become the chain of inserts again.

Forming splat shuffles can reduce IR and help enable further IR transforms.
Motivating bugs:
https://bugs.llvm.org/show_bug.cgi?id=42174
https://bugs.llvm.org/show_bug.cgi?id=16739

Differential Revision: https://reviews.llvm.org/D63848

llvm-svn: 365147
2019-07-04 16:45:34 +00:00
..
AggressiveInstCombine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Coroutines Simplify std::lower_bound with llvm::{bsearch,lower_bound}. NFC 2019-06-21 05:40:31 +00:00
Hello Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IPO Revert [ThinLTO] Optimize writeonly globals out 2019-07-04 00:03:30 +00:00
InstCombine [InstCombine] allow undef elements when forming splat from chain of insertelements 2019-07-04 16:45:34 +00:00
Instrumentation MSan: handle callbr instructions 2019-07-03 09:28:50 +00:00
ObjCARC [ObjC][ARC] Delete ObjC runtime calls on global variables annotated 2019-06-14 22:06:32 +00:00
Scalar [PowerPC] Hardware Loop branch instruction's condition may not be icmp. 2019-07-04 01:51:47 +00:00
Utils [LoopPeel] Some small comment update. NFC. 2019-07-04 05:10:14 +00:00
Vectorize [SLP] Recommit: Look-ahead operand reordering heuristic. 2019-07-02 20:20:28 +00:00
CMakeLists.txt
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00