Added checking code whehter target supports specific dag combining about rotate
authorJin-Gu Kang <jaykang10@imrc.kist.re.kr>
Thu, 3 Oct 2013 15:58:48 +0000 (15:58 +0000)
committerJin-Gu Kang <jaykang10@imrc.kist.re.kr>
Thu, 3 Oct 2013 15:58:48 +0000 (15:58 +0000)
commitb70a05a871a9ce44231a5f6308271f333c4ad110
treeb9c341da84adf83e5b53931290bda4b06003529b
parent4d63c8daec1759e60f85a49b7a91f88edf0c0a4d
Added checking code whehter target supports specific dag combining about rotate
or not. The corresponding dag patterns are as following:

"DAGCombier::MatchRotate" function in DAGCombiner.cpp
Pattern1
// fold (or (shl (*ext x), (*ext y)),
//          (srl (*ext x), (*ext (sub 32, y)))) ->
//   (*ext (rotl x, y))
// fold (or (shl (*ext x), (*ext y)),
//          (srl (*ext x), (*ext (sub 32, y)))) ->
//   (*ext (rotr x, (sub 32, y)))

pattern2
// fold (or (shl (*ext x), (*ext (sub 32, y))),
//          (srl (*ext x), (*ext y))) ->
//   (*ext (rotl x, y))
// fold (or (shl (*ext x), (*ext (sub 32, y))),
//          (srl (*ext x), (*ext y))) ->
//   (*ext (rotr x, (sub 32, y)))

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191905 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp