llvm-project/llvm/lib/Transforms/InstCombine
Philip Reames 84e54eb471 [InstCombine] Limit a vector demanded elts rule which was producing invalid IR.
The demanded elts rules introduced for GEPs in https://reviews.llvm.org/rL356293 replaced vector constants with undefs (by design).  It turns out that the LangRef disallows such cases when indexing structs.  The right fix is probably to relax the langref requirement, and update other passes to expect the result, but for the moment, limit the transform to avoid compiler crashes.

This should fix https://bugs.llvm.org/show_bug.cgi?id=41624.

llvm-svn: 359633
2019-04-30 23:09:26 +00:00
..
CMakeLists.txt [InstCombine] Optimize `atomicrmw <op>, 0` into `load atomic` when possible 2019-02-07 21:27:23 +00:00
InstCombineAddSub.cpp [InstCombine] prevent possible miscompile with negate+sdiv of vector op 2019-04-09 14:09:06 +00:00
InstCombineAndOrXor.cpp [InstCombine] Don't transform ((C1 OP zext(X)) & C2) -> zext((C1 OP X) & C2) if either zext or OP has another use. 2019-03-21 17:50:49 +00:00
InstCombineAtomicRMW.cpp [InstCombine] Extend saturating idempotent atomicrmw transform to FP 2019-03-01 19:50:36 +00:00
InstCombineCalls.cpp [InstCombine][X86] Tweak generic expansion of PACKSS/PACKUS to shuffle then truncate. NFCI. 2019-04-25 13:51:57 +00:00
InstCombineCasts.cpp Extra processing for BitCast + PHI in InstCombine 2019-02-09 01:44:28 +00:00
InstCombineCompares.cpp [InstCombine] reduce code duplication; NFC 2019-04-29 19:23:44 +00:00
InstCombineInternal.h [InstCombine] Be consistent w/handling of masked intrinsics style wise [NFC] 2019-04-25 01:18:56 +00:00
InstCombineLoadStoreAlloca.cpp [InstCombine] Eliminate stores to constant memory 2019-04-22 20:28:19 +00:00
InstCombineMulDivRem.cpp [InstCombine] canonicalize fdiv after fmul if reassociation is allowed 2019-04-15 13:23:38 +00:00
InstCombinePHI.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
InstCombineSelect.cpp [InstCombine] Use uadd.sat and usub.sat for canonicalization 2019-03-27 17:56:15 +00:00
InstCombineShifts.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InstCombineSimplifyDemanded.cpp [InstCombine] Limit a vector demanded elts rule which was producing invalid IR. 2019-04-30 23:09:26 +00:00
InstCombineTables.td InstCombine/AMDGPU: Add dimension-aware image intrinsics to SimplifyDemanded 2018-06-21 13:37:31 +00:00
InstCombineVectorOps.cpp [InstCombine] remove overzealous assert for shuffles (PR41419) 2019-04-08 13:28:29 +00:00
InstructionCombining.cpp [InstCombine] Factor out unreachable inst idiom creation [NFC] 2019-04-17 17:37:58 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00