llvm-6502/lib/Transforms
Andrea Di Biagio d25126faae [InstCombine] Fix regression introduced at r227197.
This patch fixes a problem I accidentally introduced in an instruction combine
on select instructions added at r227197. That revision taught the instruction
combiner how to fold a cttz/ctlz followed by a icmp plus select into a single
cttz/ctlz with flag 'is_zero_undef' cleared.

However, the new rule added at r227197 would have produced wrong results in the
case where a cttz/ctlz with flag 'is_zero_undef' cleared was follwed by a
zero-extend or truncate. In that case, the folded instruction would have
been inserted in a wrong location thus leaving the CFG in an inconsistent
state.

This patch fixes the problem and add two reproducible test cases to
existing test 'InstCombine/select-cmp-cttz-ctlz.ll'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229124 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13 16:33:34 +00:00
..
Hello
InstCombine [InstCombine] Fix regression introduced at r227197. 2015-02-13 16:33:34 +00:00
Instrumentation tsan: do not instrument not captured values 2015-02-12 09:55:28 +00:00
IPO [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
ObjCARC Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Scalar [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
Utils [SimplifyCFG] Be more aggressive 2015-02-13 10:48:30 +00:00
Vectorize [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile