[llvm] r293663 - [X86][XOP] Add test showing failure to combine build vector to vpermil2ps shuffle

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 1 17:28:35 PST 2017


Can you please include FIXME's describing the desired result? (I know there
is some description in the commit message, but having it in the test so
that it is clear that this is not "desired" behavior is good for a reader).

-- Sean Silva

On Tue, Jan 31, 2017 at 10:10 AM, Simon Pilgrim via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rksimon
> Date: Tue Jan 31 12:10:34 2017
> New Revision: 293663
>
> URL: http://llvm.org/viewvc/llvm-project?rev=293663&view=rev
> Log:
> [X86][XOP] Add test showing failure to combine build vector to vpermil2ps
> shuffle
>
> Modified:
>     llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-xop.ll
>
> Modified: llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-xop.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/
> CodeGen/X86/vector-shuffle-combining-xop.ll?rev=293663&
> r1=293662&r2=293663&view=diff
> ============================================================
> ==================
> --- llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-xop.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-xop.ll Tue Jan
> 31 12:10:34 2017
> @@ -341,6 +341,34 @@ define void @buildvector_v4f32_0404(floa
>    ret void
>  }
>
> +define void @buildvector_v4f32_07z6(float %a, <4 x float> %b, <4 x
> float>* %ptr) {
> +; X32-LABEL: buildvector_v4f32_07z6:
> +; X32:       # BB#0:
> +; X32-NEXT:    movl {{[0-9]+}}(%esp), %eax
> +; X32-NEXT:    vpermilps {{.*#+}} xmm1 = xmm0[3,1,2,3]
> +; X32-NEXT:    vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero
> +; X32-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
> +; X32-NEXT:    vinsertps {{.*#+}} xmm0 = xmm1[0,1],zero,xmm0[2]
> +; X32-NEXT:    vmovaps %xmm0, (%eax)
> +; X32-NEXT:    retl
> +;
> +; X64-LABEL: buildvector_v4f32_07z6:
> +; X64:       # BB#0:
> +; X64-NEXT:    vpermilps {{.*#+}} xmm2 = xmm1[3,1,2,3]
> +; X64-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
> +; X64-NEXT:    vinsertps {{.*#+}} xmm0 = xmm0[0,1],zero,xmm1[2]
> +; X64-NEXT:    vmovaps %xmm0, (%rdi)
> +; X64-NEXT:    retq
> +  %b2 = extractelement <4 x float> %b, i32 2
> +  %b3 = extractelement <4 x float> %b, i32 3
> +  %v0 = insertelement <4 x float> undef, float  %a, i32 0
> +  %v1 = insertelement <4 x float> %v0,   float %b3, i32 1
> +  %v2 = insertelement <4 x float> %v1,   float 0.0, i32 2
> +  %v3 = insertelement <4 x float> %v2,   float %b2, i32 3
> +  store <4 x float> %v3, <4 x float>* %ptr
> +  ret void
> +}
> +
>  define <2 x double> @constant_fold_vpermil2pd() {
>  ; X32-LABEL: constant_fold_vpermil2pd:
>  ; X32:       # BB#0:
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170201/31e5b7ea/attachment.html>


More information about the llvm-commits mailing list