[LLVMdev] Simple question on sign

sam parker S.Parker3 at lboro.ac.uk
Thu Feb 23 01:45:29 PST 2012


how does llvm decide when to use unsigned instructions then? such as unsigned
adds and loads? I'm trying to describe some multiply shift ops and getting a
bit stuck differentiating between signed and unsigned.

sam
 

Eli Friedman-2 wrote:
> 
> On Wed, Feb 22, 2012 at 4:28 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
> On Wed, Feb 22, 2012 at 4:28 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
>> How do you determine if a shift is signed or not?
>>
>> ashr = always signed?
> 
> Essentially, yes.
> 
>> lshr = always unsigned?
> 
> Essentially, yes.
> 
>> shl = always signed?
> 
> Signed left shift and unsigned left shift are both shl.
> 
> http://llvm.org/docs/LangRef.html#i_shl describes the semantics of shifts.
> 
>> The CmpInst has the "isSigned()" function, but it appears that every
>> other
>> Instruction I've looked at doesn't seem to have this.
> 
> There isn't an isSigned() function because the query doesn't really
> make sense.  LLVM IR doesn't in general track whether a value is
> signed or unsigned.
> 
> -Eli
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> 

-- 
View this message in context: http://old.nabble.com/Simple-question-on-sign-tp33375005p33376706.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.




More information about the llvm-dev mailing list