<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 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 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.25in 1.0in 1.25in;}
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">Hello Craig,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks a lot for pointing it out to me.  I familiar with this problem,  we are planning  to improve CodeGen to handle with this case in
<a name="_MailEndCompose">near future.<o:p></o:p></a></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"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Igor<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"><a name="_____replyseparator"></a><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Craig Topper [mailto:craig.topper@gmail.com]
<br>
<b>Sent:</b> Saturday, July 02, 2016 08:46<br>
<b>To:</b> Breger, Igor; Eric Christopher via cfe-commits<br>
<b>Subject:</b> Re: r274110 - [AVX512] Zero extend cmp intrinsic return value.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">This change codgens to something really awful now. Can you take a look?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">            .section            __TEXT,__text,regular,pure_instructions<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .section            __TEXT,__literal8,8byte_literals<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .p2align           3<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">LCPI0_0:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   -1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .section            __TEXT,__const<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .p2align           6<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">LCPI0_1:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   2<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   3<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   8<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   8<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   8<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .quad   8<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .section            __TEXT,__text,regular,pure_instructions<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .globl   _test_mm_cmpeq_epu32_mask<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            .p2align           4, 0x90<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">_test_mm_cmpeq_epu32_mask:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vpcmpeqd       %xmm1, %xmm0, %k1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vpbroadcastq   LCPI0_0(%rip), %zmm0 {%k1} {z}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vpxord %zmm1, %zmm1, %zmm1<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vmovdqa64     LCPI0_1(%rip), %zmm2<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vpermt2q         %zmm1, %zmm2, %zmm0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vpsllq   $63, %zmm0, %zmm0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            vptestmq         %zmm0, %zmm0, %k0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            kmovw            %k0, %eax<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">            retq<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">~Craig<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Jun 29, 2016 at 1:14 AM, Igor Breger via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<o:p></o:p></p>
<p class="MsoNormal">Author: ibreger<br>
Date: Wed Jun 29 03:14:17 2016<br>
New Revision: 274110<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=274110&view=rev" target="_blank">
http://llvm.org/viewvc/llvm-project?rev=274110&view=rev</a><br>
Log:<br>
[AVX512]  Zero extend cmp intrinsic return value.<br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D21746" target="_blank">http://reviews.llvm.org/D21746</a><br>
<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br>
    cfe/trunk/test/CodeGen/avx512vl-builtins.c<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=274110&r1=274109&r2=274110&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=274110&r1=274109&r2=274110&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Wed Jun 29 03:14:17 2016<br>
@@ -6460,8 +6460,8 @@ static Value *EmitX86MaskedCompare(CodeG<br>
       Indices[i] = i;<br>
     for (unsigned i = NumElts; i != 8; ++i)<br>
       Indices[i] = NumElts;<br>
-    Cmp = CGF.Builder.CreateShuffleVector(Cmp, UndefValue::get(Cmp->getType()),<br>
-                                          Indices);<br>
+    Cmp = CGF.Builder.CreateShuffleVector(<br>
+        Cmp, llvm::Constant::getNullValue(Cmp->getType()), Indices);<br>
   }<br>
   return CGF.Builder.CreateBitCast(Cmp,<br>
                                    IntegerType::get(CGF.getLLVMContext(),<br>
<br>
Modified: cfe/trunk/test/CodeGen/avx512vl-builtins.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512vl-builtins.c?rev=274110&r1=274109&r2=274110&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512vl-builtins.c?rev=274110&r1=274109&r2=274110&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/avx512vl-builtins.c (original)<br>
+++ cfe/trunk/test/CodeGen/avx512vl-builtins.c Wed Jun 29 03:14:17 2016<br>
@@ -8,6 +8,7 @@<br>
 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {<br>
   // CHECK-LABEL: @test_mm_cmpeq_epu32_mask<br>
   // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}<br>
+  // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 4, i32 4, i32 4><br>
   return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);<br>
 }<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</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></body>
</html>