llvm-project/llvm/lib/Transforms
Daniel Neilson bdda115e19 [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions.
Summary:
Presently, InstCombiner::foldICmpWithCastAndCast() implicitly assumes that it is
only invoked with icmp instructions of integer type. If that assumption is broken,
and it is called with an icmp of vector type, then it fails (asserts/crashes).

This patch addresses the deficiency. It allows it to simplify
icmp (ptrtoint x), (ptrtoint/c) of vector type into a compare of the inputs,
much as is done when the type is integer.

Reviewers: apilipenko, fedor.sergeev, mkazantsev, anna

Reviewed By: anna

Subscribers: llvm-commits

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

llvm-svn: 326730
2018-03-05 18:05:51 +00:00
..
AggressiveInstCombine [AggressiveInstCombine] Use use_empty() instead of !getNumUses(), NFC 2018-03-02 23:22:49 +00:00
Coroutines [Coroutines] Move debug statement before assert 2018-02-19 20:50:09 +00:00
Hello Add auto-exporting of symbols from tools so that plugins work on Windows 2016-05-26 11:16:43 +00:00
IPO [ThinLTO] Revert r325320: Import global variables 2018-03-02 23:40:08 +00:00
InstCombine [InstCombine] Don't blow up in foldICmpWithCastAndCast on vector icmp instructions. 2018-03-05 18:05:51 +00:00
Instrumentation [InstrProfiling] Emit the runtime hook when no counters are lowered 2018-02-28 19:00:08 +00:00
ObjCARC [ObjCARC] Do not turn a call to @objc_autoreleaseReturnValue into a call 2018-01-19 23:51:13 +00:00
Scalar [IPSCCP] Add getCompare which returns either true, false, undef or null. 2018-03-05 17:33:50 +00:00
Utils [Utils] Salvage debug info in block simplification 2018-03-02 22:46:48 +00:00
Vectorize [LV][CFG] Add irreducible CFG detection for outer loops 2018-03-02 12:24:25 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00