Re: [rs6000] Avoid useless masking of count operand for rotation

2020-10-02 Thread Segher Boessenkool
Hi Eric, On Fri, Oct 02, 2020 at 10:26:24AM +0200, Eric Botcazou wrote: > > Don't call it "mask" please: *all* of our basic rotate instructions > > already have something called "mask" (that is the "m" in "rlwnm" for > > example; and "rotlw d,a,b" is just an extended mnemonic for > > "rlwnm d,a,b,

Re: [rs6000] Avoid useless masking of count operand for rotation

2020-10-02 Thread Eric Botcazou
> Don't call it "mask" please: *all* of our basic rotate instructions > already have something called "mask" (that is the "m" in "rlwnm" for > example; and "rotlw d,a,b" is just an extended mnemonic for > "rlwnm d,a,b,0,31"). The hardware also does not mask the shift amount > at all (instead, only

Re: [rs6000] Avoid useless masking of count operand for rotation

2020-09-29 Thread Segher Boessenkool
Hi! [ Please CC: me on rs6000 patches. Thanks! ] On Tue, Sep 29, 2020 at 12:26:28PM +0200, Eric Botcazou wrote: > and the masking is present all the way down to the assembly at -O2: > > rlwinm 4,4,0,27,31 > rotlw 3,3,4 > > Now this masking is redundant since it's done by the ha

[rs6000] Avoid useless masking of count operand for rotation

2020-09-29 Thread Eric Botcazou
Hi, the Interfaces package of the Ada library defines a pair of rotation operators function Rotate_Left (Value : Unsigned_n; Amount : Natural) return Unsigned_n; function Rotate_Right (Value : Unsigned_n; Amount : Natural) return Unsigned_n; on modular (aka unsigned) types of