r274110 - [AVX512] Zero extend cmp intrinsic return value.
Craig Topper via cfe-commits
cfe-commits at lists.llvm.org
Sun Jul 3 13:32:09 PDT 2016
Also should we change the AutoUpgrade code for the cmp intrinsics in the
backend to also use zero instead of undef?
~Craig
On Sun, Jul 3, 2016 at 12:11 AM, Breger, Igor <igor.breger at intel.com> wrote:
> Hello Craig,
>
> 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 near future.
>
>
>
> Regards,
>
> Igor
>
>
>
> *From:* Craig Topper [mailto:craig.topper at gmail.com]
> *Sent:* Saturday, July 02, 2016 08:46
> *To:* Breger, Igor; Eric Christopher via cfe-commits
> *Subject:* Re: r274110 - [AVX512] Zero extend cmp intrinsic return value.
>
>
>
> This change codgens to something really awful now. Can you take a look?
>
>
>
> .section __TEXT,__text,regular,pure_instructions
>
> .section __TEXT,__literal8,8byte_literals
>
> .p2align 3
>
> LCPI0_0:
>
> .quad -1
>
> .section __TEXT,__const
>
> .p2align 6
>
> LCPI0_1:
>
> .quad 0
>
> .quad 1
>
> .quad 2
>
> .quad 3
>
> .quad 8
>
> .quad 8
>
> .quad 8
>
> .quad 8
>
> .section __TEXT,__text,regular,pure_instructions
>
> .globl _test_mm_cmpeq_epu32_mask
>
> .p2align 4, 0x90
>
> _test_mm_cmpeq_epu32_mask:
>
> vpcmpeqd %xmm1, %xmm0, %k1
>
> vpbroadcastq LCPI0_0(%rip), %zmm0 {%k1} {z}
>
> vpxord %zmm1, %zmm1, %zmm1
>
> vmovdqa64 LCPI0_1(%rip), %zmm2
>
> vpermt2q %zmm1, %zmm2, %zmm0
>
> vpsllq $63, %zmm0, %zmm0
>
> vptestmq %zmm0, %zmm0, %k0
>
> kmovw %k0, %eax
>
> retq
>
>
> ~Craig
>
>
>
> On Wed, Jun 29, 2016 at 1:14 AM, Igor Breger via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
> Author: ibreger
> Date: Wed Jun 29 03:14:17 2016
> New Revision: 274110
>
> URL: http://llvm.org/viewvc/llvm-project?rev=274110&view=rev
> Log:
> [AVX512] Zero extend cmp intrinsic return value.
>
> Differential Revision: http://reviews.llvm.org/D21746
>
> Modified:
> cfe/trunk/lib/CodeGen/CGBuiltin.cpp
> cfe/trunk/test/CodeGen/avx512vl-builtins.c
>
> Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=274110&r1=274109&r2=274110&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Wed Jun 29 03:14:17 2016
> @@ -6460,8 +6460,8 @@ static Value *EmitX86MaskedCompare(CodeG
> Indices[i] = i;
> for (unsigned i = NumElts; i != 8; ++i)
> Indices[i] = NumElts;
> - Cmp = CGF.Builder.CreateShuffleVector(Cmp,
> UndefValue::get(Cmp->getType()),
> - Indices);
> + Cmp = CGF.Builder.CreateShuffleVector(
> + Cmp, llvm::Constant::getNullValue(Cmp->getType()), Indices);
> }
> return CGF.Builder.CreateBitCast(Cmp,
> IntegerType::get(CGF.getLLVMContext(),
>
> Modified: cfe/trunk/test/CodeGen/avx512vl-builtins.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512vl-builtins.c?rev=274110&r1=274109&r2=274110&view=diff
>
> ==============================================================================
> --- cfe/trunk/test/CodeGen/avx512vl-builtins.c (original)
> +++ cfe/trunk/test/CodeGen/avx512vl-builtins.c Wed Jun 29 03:14:17 2016
> @@ -8,6 +8,7 @@
> __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) {
> // CHECK-LABEL: @test_mm_cmpeq_epu32_mask
> // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
> + // 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>
> return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b);
> }
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
>
>
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160703/44290161/attachment.html>
More information about the cfe-commits
mailing list