On Feb 3, 2009, at 2:35 PMPST, Mike Stump wrote:
> On Feb 3, 2009, at 2:28 PM, Kasra wrote:
>> I was looking around the LLVM instruction set and I failed to find
>> ROL and ROR instructions. Is there any plans on adding these
>> instructions to LLVM?
>
> Not sure what you mean:
He's referring to the LLVM IR, I think, and it's true that doesn't
have rotates. The LLVM back ends do know about rotate instructions on
targets that have them, though, and the llvm optimizers are pretty
smart about recognizing the usual ways to express rotate with shift/
and/or, as below.
> $ cat t.c
> unsigned int rol(unsigned int i) {
> return i << 1 | i >> 31;
> }
> mrs $ clang -S t.c -O2
> mrs $ cat t.s
>
>
> .text
> .align 4,0x90
> .globl _rol
> _rol:
> movl 4(%esp), %eax
> roll %eax
> ret
>
> ?
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev