[LLVMdev] Why are imm shifts where imm >= width type eliminated entirely?

Ryan Taylor ryta1203 at gmail.com
Mon Apr 20 13:00:05 PDT 2015


For example:

unsigned int x, y;

void foo()
{
     y = x >> 129;
}

Where int is a 16bit type, the .ll is producing only 'ret void' at O3. At
O0 the .ll looks fine but then llc gets rid of it an simply returns.

I'm just curious what the reasoning is for this? It isn't trying to set y
to anything at all.

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150420/1b8b96e8/attachment.html>


More information about the llvm-dev mailing list