[LLVMdev] InstCombine Question

Chris Lattner sabre at nondot.org
Fri Apr 4 15:06:43 PDT 2008

On Fri, 4 Apr 2008, David Greene wrote:
>> So we're loading a vector of pointers and then using getelementptr as
>> basically a reg-reg copy with a cast (I think).  Yes, it's a little weird,
>> but legal  AFAICS.
>> I'm not sure if the above code is really kosher.  It is very strange to see
>> the typing of the extractelement and GEP here.
> Actually, there are multiple problems.  The first zero index on the GEP is
> wrong.  I believe that it should be the following:
>   %r62 = getelementptr <2 x double>* null, i64 %r61
> This is essentially the equivalent of a bitcast, then.

Right.  I guess it would be acceptable to turn into into an inttoptr 

> These are problems in our compiler, not LLVM.  But I do want to ask
> about the legality of the revised GEP above.  Is that legal code?  If so,
> instcombine should not be removing it as dead code.

I don't think it's really legal, GEP shouldn't be used that way.



More information about the llvm-dev mailing list