Simon Pilgrim 1603106725 [TargetLowering] Improve expandFunnelShift shift amount masking
For the 'inverse shift', we currently always perform a subtraction of the original (masked) shift amount.

But for the case where we are handling power-of-2 type widths, we can replace:

(sub bw-1, (and amt, bw-1) ) -> (and (xor amt, bw-1), bw-1) -> (and ~amt, bw-1)

This allows x86 shifts to fold away the and-mask.

Followup to D77301 + D80466.

http://volta.cs.utah.edu:8080/z/Nod0Gr

Differential Revision: https://reviews.llvm.org/D80489
2020-05-24 11:25:09 +01:00
..
2020-03-24 23:04:58 +09:00
2020-02-08 15:23:40 +00:00
2020-02-08 15:23:40 +00:00
2020-01-06 10:50:26 +00:00
2020-04-09 10:36:00 +01:00
2019-10-07 14:10:21 +00:00
2019-09-05 18:15:07 +00:00
2020-01-31 09:36:55 -08:00