<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        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:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Sure Michael.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Michael Kuperstein [mailto:mkuper@google.com]
<br>
<b>Sent:</b> Thursday, March 2, 2017 3:20 AM<br>
<b>To:</b> Hans Wennborg <hans@chromium.org><br>
<b>Cc:</b> Shahid, Asghar-ahmad <Asghar-ahmad.Shahid@amd.com>; llvm-commits <llvm-commits@lists.llvm.org>; Daniel Jasper <djasper@google.com>; Steven Wu <stevenwu@apple.com>; Matthias Braun <matze@braunis.de><br>
<b>Subject:</b> Re: [llvm] r296575 - [SLP] Fixes the bug due to absence of in order uses of scalars which needs to be available<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Shahid, I can't find your bugzilla username, so replying here.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I haven't dug too deeply, but it looks like the problem is that setting VectorizedValue to Shuf doesn't really do the right thing. If we sort the scalars, then the lanes for the external users are determined using the sorted order, so we
 really should be extracting from the loads. I'm pretty sure my original test in jumbled-same.ll was actually correct, the extract (from lane 1) really should have been from the load, not from the shuffle.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Can you please take a look?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">  Michael<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Mar 1, 2017 at 11:14 AM, Hans Wennborg <<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">This caused miscompiles in Chromium (PR32109). I've reverted in r296654.<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br>
On Tue, Feb 28, 2017 at 7:51 PM, Mohammad Shahid via llvm-commits<br>
<<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: ashahid<br>
> Date: Tue Feb 28 21:51:54 2017<br>
> New Revision: 296575<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=296575&view=rev" target="_blank">
http://llvm.org/viewvc/llvm-project?rev=296575&view=rev</a><br>
> Log:<br>
> [SLP] Fixes the bug due to absence of in order uses of scalars which needs to be available<br>
> for VectorizeTree() API.This API uses it for proper mask computation to be used in shufflevector IR.<br>
> The fix is to compute the mask for out of order memory accesses while building the vectorizable tree<br>
> instead of actual vectorization of vectorizable tree.<br>
><br>
> Reviewers: mkuper<br>
><br>
> Differential Revision: <a href="https://reviews.llvm.org/D30159" target="_blank">
https://reviews.llvm.org/D30159</a><br>
><br>
> Change-Id: Id1e287f073fa4959713ba545fa4254db5da8b40d<br>
><br>
> Added:<br>
>     llvm/trunk/test/Transforms/SLPVectorizer/X86/jumbled-load-bug.ll<br>
> Modified:<br>
>     llvm/trunk/include/llvm/Analysis/LoopAccessAnalysis.h<br>
>     llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp<br>
>     llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp<br>
>     llvm/trunk/test/Transforms/SLPVectorizer/X86/jumbled-same.ll<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>