]> granicus.if.org Git - llvm/commitdiff
[InstCombine] Add m_BitReverse pattern match helper. NFCI.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 30 Jun 2017 18:58:29 +0000 (18:58 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 30 Jun 2017 18:58:29 +0000 (18:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@306860 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/PatternMatch.h
lib/Transforms/InstCombine/InstCombineCalls.cpp

index e5b4160c5c71139679c7f0f67ead8031c7dad12d..5b69e7855cc77108507a6b9b4d142087644fcae5 100644 (file)
@@ -1359,6 +1359,11 @@ m_Intrinsic(const T0 &Op0, const T1 &Op1, const T2 &Op2, const T3 &Op3) {
 }
 
 // Helper intrinsic matching specializations.
+template <typename Opnd0>
+inline typename m_Intrinsic_Ty<Opnd0>::Ty m_BitReverse(const Opnd0 &Op0) {
+  return m_Intrinsic<Intrinsic::bitreverse>(Op0);
+}
+
 template <typename Opnd0>
 inline typename m_Intrinsic_Ty<Opnd0>::Ty m_BSwap(const Opnd0 &Op0) {
   return m_Intrinsic<Intrinsic::bswap>(Op0);
index dbed7ad4eae84d76bdb3a2ef0d400ee5e431e081..3770021de1002d4c3ef9c71d88cf2597dd94fe2e 100644 (file)
@@ -1985,7 +1985,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
     Value *X = nullptr;
 
     // bitreverse(bitreverse(x)) -> x
-    if (match(IIOperand, m_Intrinsic<Intrinsic::bitreverse>(m_Value(X))))
+    if (match(IIOperand, m_BitReverse(m_Value(X))))
       return replaceInstUsesWith(CI, X);
     break;
   }