[LLVMdev] Why is there no ashl/lshl?
Robinson, Paul
Paul_Robinson at playstation.sony.com
Tue May 7 09:57:56 PDT 2013
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Duncan Sands
> Sent: Tuesday, May 07, 2013 1:05 AM
> To: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] Why is there no ashl/lshl?
>
> Hi Tim,
>
> >> There is a distinction between logical/arithmetic shift right, but
> why
> >> not for shift left?
> >
> > The arithmetic right shift has the nice property that it preserves the
> > fact that x >> 1 == x/2 for negative signed numbers (unlike the
> > logical shift).
>
> except when x is -1.
x a>> 1 == (x/2 rounded toward negative infinity)
which for positive numbers people think of as "truncated"
which people sometimes mistake for "rounded toward zero"
Pedantically yours,
--paulr
More information about the llvm-dev
mailing list