[llvm-dev] Why ISel Shifts operations can only be expanded for Value type vector ?

Ryan Taylor via llvm-dev
2017-03-03T20:13:43Z

Why you can't still expand it through MUL with a Custom lowering? Or am I
missing something?

Thanks.

On Fri, Mar 3, 2017 at 12:21 PM, vivek pandya via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hello LLVM Devs,
>
> I am working on a target on which no SHL instruction is available. So
> wanted to expand it through MUL. But currently it is only possible to
> expand SHL for vector types.
>
> One possible reason I can think is because LLVM tries to optimize MUL to
> SHL in certain cases and that can make compiler co in loop or may end up
> generating wrong code.
>
> But I think SHL should be able to expanded to MUL and to prevent looping
> between MUL and SHL we can put a condition that only optimize MUL to SHL
> when SHL is not expanded operation. The similar logic can be applied to DIV
> and SRA.
>
> If there is any other reasons for not doing this, kindly explain.
>
> Sincerely,
> Vivek
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20170303/59f8c466/attachment.html>