[PATCH] D77868: [InstSimplify] fold select of bools using bitwise logic

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 13 10:12:24 PDT 2020


lebedev.ri accepted this revision.
lebedev.ri added a comment.

lg



================
Comment at: llvm/lib/Analysis/InstructionSimplify.cpp:3983-3989
+  // select Cond, T, false --> Cond & T
+  if (match(F, m_ZeroInt()))
+    return SimplifyAndInst(Cond, T, Q);
+
+  // select Cond, true, F --> Cond | F
+  if (match(T, m_One()))
+    return SimplifyOrInst(Cond, F, Q);
----------------
I would recommend making this more obvious:
```
  // select Cond, T, false --> Cond & T
  if (match(F, m_ZeroInt()))
    if(Value* V = SimplifyAndInst(Cond, T, Q))
      return V;

  // select Cond, true, F --> Cond | F
  if (match(T, m_One()))
    if(Value* V = SimplifyOrInst(Cond, F, Q))
      return V;
```


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77868/new/

https://reviews.llvm.org/D77868





More information about the llvm-commits mailing list