!(X || Y) && X --> false
https://alive2.llvm.org/ce/z/693Jgv
Details
Details
- Reviewers
spatel - Commits
- rG1fd4d91fa663: [InstSimplify] Fold !(X || Y) && X --> false
Diff Detail
Diff Detail
Event Timeline
llvm/lib/Analysis/InstructionSimplify.cpp | ||
---|---|---|
4574 | I guess this pattern also can't accept undef/poision for vector case. |
llvm/lib/Analysis/InstructionSimplify.cpp | ||
---|---|---|
4574 | Just ignore the comment. I am wrong. |
llvm/lib/Analysis/InstructionSimplify.cpp | ||
---|---|---|
4576–4577 | Shorten: if (match(Cond, m_Not(m_c_LogicalOr(m_Specific(TrueVal), m_Value())))) | |
llvm/test/Transforms/InstSimplify/select-logical.ll | ||
193 | typo: comute -> commute | |
227 | The FalseVal of %r is not zero, so this is not showing what the comment describes. This might need a TODO if we don't match the first select as logical-or? |
llvm/test/Transforms/InstSimplify/select-logical.ll | ||
---|---|---|
227 | I'm sorry , this should be a typo. |
I guess this pattern also can't accept undef/poision for vector case.