diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-04-30 12:53:05 +0100 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-04-30 12:57:17 +0100 |
| commit | 96238486ed627f1bad2c327f72a5a2b1d301d84d (patch) | |
| tree | 8a6c6571a0943b322b6e712dab8358471584c19b /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 6547a5ceb2213dc49ba2b8a7d98913b39cb331d9 (diff) | |
[DAGCombine] Move the remaining X86 funnel shift patterns to DAGCombine
X86 matches several 'shift+xor' funnel shift patterns:
fold (or (srl (srl x1, 1), (xor y, 31)), (shl x0, y)) -> (fshl x0, x1, y)
fold (or (shl (shl x0, 1), (xor y, 31)), (srl x1, y)) -> (fshr x0, x1, y)
fold (or (shl (add x0, x0), (xor y, 31)), (srl x1, y)) -> (fshr x0, x1, y)
These patterns are also what we end up with the proposed expansion changes in D77301.
This patch moves these to DAGCombine's generic MatchFunnelPosNeg.
All existing X86 test cases still pass, and we just have a small codegen change in pr32282.ll.
Reviewed By: @spatel
Differential Revision: https://reviews.llvm.org/D78935
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
