llvm-project/llvm/lib/Transforms/InstCombine
Nikita Popov a8f7dee1df [InstCombine] Support one-hot merge for logical and/or
If a logical and/or is used, we need to be careful not to propagate
a potential poison value from the RHS by inserting a freeze
instruction. Otherwise it works the same way as bitwise and/or.

This is intended to address the regression reported at
https://reviews.llvm.org/D101191#2751002.

Differential Revision: https://reviews.llvm.org/D102279
2021-05-12 21:01:18 +02:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
InstCombineAddSub.cpp [InstCombine] C - ctpop(a) - > ctpop(~a)) if C is bitwidth (PR50104) 2021-04-26 15:40:54 +02:00
InstCombineAndOrXor.cpp [InstCombine] Support one-hot merge for logical and/or 2021-05-12 21:01:18 +02:00
InstCombineAtomicRMW.cpp Add missing namespace closure comments. NFCI. 2020-09-23 16:19:25 +01:00
InstCombineCalls.cpp Internalize some cl::opt global variables or move them under namespace llvm 2021-05-07 11:15:43 -07:00
InstCombineCasts.cpp [InstCombine] relax masking requirement for truncated funnel/rotate match 2021-04-28 16:49:50 -04:00
InstCombineCompares.cpp [InstCombine] avoid infinite loops with select/icmp transforms 2021-05-04 11:54:06 -04:00
InstCombineInternal.h [InstCombine] Support one-hot merge for logical and/or 2021-05-12 21:01:18 +02:00
InstCombineLoadStoreAlloca.cpp [CSSPGO] Unblock optimizations with pseudo probe instrumentation part 2. 2021-04-26 16:52:33 -07:00
InstCombineMulDivRem.cpp [InstCombine] fold fdiv with powi divisor (PR49147) 2021-02-24 16:44:36 -05:00
InstCombineNegator.cpp [Transforms] Use range-based for loops (NFC) 2021-02-08 22:33:53 -08:00
InstCombinePHI.cpp [InstCombine] Simplify phis with incoming pointer-casts. 2021-03-09 11:40:18 +00:00
InstCombineSelect.cpp [InstCombine] Support one-hot merge for logical and/or 2021-05-12 21:01:18 +02:00
InstCombineShifts.cpp [InstCombine] fold shift-of-srem-by-2 to mask+shift 2021-04-20 17:10:16 -04:00
InstCombineSimplifyDemanded.cpp [InstCombine] ctpop(X) ^ ctpop(Y) & 1 --> ctpop(X^Y) & 1 (PR50094) 2021-05-04 13:16:18 +02:00
InstCombineVectorOps.cpp [InstCombine] fold extract subvector of bitcast insertelt 2021-05-10 17:20:10 -04:00
InstructionCombining.cpp Revert "[instcombine] Exploit UB implied by nofree attributes" 2021-04-22 10:53:17 -07:00