<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: arial,helvetica,sans-serif; font-size: 10pt; color: #000000'><br><hr id="zwchr"><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>From: </b>"Elena via llvm-dev Demikhovsky" <llvm-dev@lists.llvm.org><br><b>To: </b>"Chandler Carruth" <chandlerc@google.com>, "Owen Anderson" <resistor@mac.com>, "Sanjoy Das" <sanjoy@playingwithpointers.com><br><b>Cc: </b>"llvm-dev" <llvm-dev@lists.llvm.org>, "Hideki Saito" <hideki.saito@intel.com><br><b>Sent: </b>Wednesday, May 18, 2016 8:25:28 AM<br><b>Subject: </b>Re: [llvm-dev] Working on FP SCEV Analysis<br><br>


<style><!--

@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}

p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}

@list l0
        {mso-list-id:799957587;
        mso-list-type:hybrid;
        mso-list-template-ids:-1214880770 44585902 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style>

<div class="WordSection1">
<p class="MsoNormal"><a name="_MailEndCompose">> Even then, I'd personally want to see further evidence of why the correct solution is to model the floating point IV in SCEV rather than find a more powerful way of converting the IV to an integer that models
 > the non-integer values taken on by the IV. As an example, if the use case is the following code with appropriate flags to relax IEEE semantics so this looks like normal algabra etc:</a></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">>   for (float f = 0.01f; f < 1.0f; f += 0.01f)  <span style="font-family: Wingdings;">
ç</span> *<b>A</b>*</p>
<p class="MsoNormal">    ...</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">> I'd rather see us cleverly turn it into:</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">>   float f = 0.01f;</p>
<p class="MsoNormal">>   for (int i = 1; i < 100; i += 1, f += 0.01f) <span style="font-family: Wingdings;">
ç</span> *<b>B</b>*</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I can later try to enhance <span style="font-size: 11pt; font-family: Consolas; color: rgb(43, 145, 175); background: none repeat scroll 0% 0% white;">
IndVarSimplify</span><span style="font-size: 11pt; font-family: Consolas; color: black; background: none repeat scroll 0% 0% white;">::handleFloatingPointIV</span><span style="font-size: 11pt; font-family: Consolas; color: black;">()
</span><span style="color: black;">in order to convert</span><span style="font-size: 11pt; font-family: Consolas; color: black;"> *<b>A</b>* to *<b>B</b>*.</span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Consolas; color: black;">But *<b>B</b>*
</span>is exactly the case I’m starting from. The main IV “i” is integer. The variable “f” is also considered as IV in this loop.
</p>
<p class="MsoNormal">And this loop is not vectorized because “f” is floating point.</p>
<p id="DWT8994" class="MsoNormal">I don’t think that the case *<b>B</b>* is uncommon.</p></div></blockquote>I agree. The *B* case is not uncommon.<br><br> -Hal<br><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div class="WordSection1"><p class="MsoNormal"></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: "Calibri",sans-serif; color: rgb(31, 73, 125);"> </span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: "Calibri",sans-serif; color: rgb(31, 73, 125);"> </span></p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;">
<span style="font-family: "Calibri",sans-serif; color: rgb(47, 84, 150);"><span style="">-<span style="font: 7pt "Times New Roman";">         
</span></span></span><span dir="LTR"></span><b><i><span style="color: rgb(47, 84, 150);"> Elena</span></i></b></p>
</div>
<p>---------------------------------------------------------------------<br>
Intel Israel (74) Limited</p>

<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</p><br>_______________________________________________<br>LLVM Developers mailing list<br>llvm-dev@lists.llvm.org<br>http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br></blockquote><br><br><br>-- <br><div><span name="x"></span>Hal Finkel<br>Assistant Computational Scientist<br>Leadership Computing Facility<br>Argonne National Laboratory<span name="x"></span><br></div></div></body></html>