OSDN Git Service

[SystemZ] Remove AND mask of bottom 6 bits when result is used for shift/rotate
authorElliot Colp <colpell@ca.ibm.com>
Wed, 6 Jul 2016 18:13:11 +0000 (18:13 +0000)
committerElliot Colp <colpell@ca.ibm.com>
Wed, 6 Jul 2016 18:13:11 +0000 (18:13 +0000)
commitb22cfb785966fcc577f6f75bd8e0e0a7e04701a2
tree51fb03d09a74814f0604843ef66cc8536d118f0d
parentd459f3847330ac8e02ac5778abce83f90cf1eebb
[SystemZ] Remove AND mask of bottom 6 bits when result is used for shift/rotate

On SystemZ, shift and rotate instructions only use the bottom 6 bits of the shift/rotate amount.
Therefore, if the amount is ANDed with an immediate mask that has all of the bottom 6 bits set, we
can remove the AND operation entirely.

Differential Revision: http://reviews.llvm.org/D21854

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274650 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/SystemZ/SystemZISelLowering.cpp
lib/Target/SystemZ/SystemZISelLowering.h
test/CodeGen/SystemZ/rot-01.ll
test/CodeGen/SystemZ/rot-02.ll [new file with mode: 0644]
test/CodeGen/SystemZ/shift-12.ll [new file with mode: 0644]