[llvm-dev] Are SCEV normal form?
Alexandre Isoard via llvm-dev
llvm-dev at lists.llvm.org
Fri Aug 11 09:57:36 PDT 2017
Hello again,
On that subject, I have the following SCEV:
(zext i16 (trunc i32 %a to i16) to i32) + ((%a /u 65536) *u 65536)
That I would like to normalize into:
%a
I am not sure where is the most natural spot in which to do that?
Also, this pattern is much more general. The idea is that I want to
coalesce bit ranges that have been extracted and put back together.
Should I detect patterns, or look for a more generic strategy? Do you have
input on that?
On Tue, Jul 25, 2017 at 9:21 PM, Alexandre Isoard <
alexandre.isoard at gmail.com> wrote:
> Hello,
>
> I assumed SCEV purpose was to be a normal form, but then I wondered which
> one of those is the normal form:
>
> (zext i16 (trunc i32 %a to i16) to i32)
>
> vs
>
> (-((%a /u 65536) *u 65536) + %a)
>
>
> The first one is nice for interval analysis, and known bit analysis.
> The second one is nice when plugged into gep of 2d arrays.
>
> --
> *Alexandre Isoard*
>
--
*Alexandre Isoard*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170811/835cfe3d/attachment.html>
More information about the llvm-dev
mailing list