!(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.