!(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
- Repository
- rG LLVM Github Monorepo
Event Timeline
| llvm/lib/Analysis/InstructionSimplify.cpp | ||
|---|---|---|
| 4564–4568 | I guess this pattern also can't accept undef/poision for vector case. | |
| llvm/lib/Analysis/InstructionSimplify.cpp | ||
|---|---|---|
| 4564–4568 | Just ignore the comment. I am wrong. | |
| llvm/lib/Analysis/InstructionSimplify.cpp | ||
|---|---|---|
| 4566–4567 | Shorten: if (match(Cond, m_Not(m_c_LogicalOr(m_Specific(TrueVal), m_Value())))) | |
| llvm/test/Transforms/InstSimplify/select-logical.ll | ||
| 189–190 | typo: comute -> commute | |
| 224 | 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 | ||
|---|---|---|
| 224 | I'm sorry , this should be a typo. | |
Shorten: