https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91560

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl.tools at gmail dot com,
                   |                            |uros at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For f1 clang emits:
        vpermilps       $144, %xmm1, %xmm2 # xmm2 = xmm1[0,0,1,2]
        vextractf128    $1, %ymm1, %xmm3
        vblendps        $8, %xmm1, %xmm3, %xmm1 # xmm1 = xmm3[0,1,2],xmm1[3]
        vpermilps       $147, %xmm1, %xmm1 # xmm1 = xmm1[3,0,1,2]
        vinsertf128     $1, %xmm1, %ymm2, %ymm1
        vblendps        $1, %ymm0, %ymm1, %ymm0 # ymm0 =
ymm0[0],ymm1[1,2,3,4,5,6,7]
and for f2:
        vextractf128    $1, %ymm1, %xmm2
        vshufpd $1, %xmm2, %xmm1, %xmm2 # xmm2 = xmm1[1],xmm2[0]
        vmovddup        %xmm1, %xmm1    # xmm1 = xmm1[0,0]
        vinsertf128     $1, %xmm2, %ymm1, %ymm1
        vblendps        $3, %ymm0, %ymm1, %ymm0 # ymm0 =
ymm0[0,1],ymm1[2,3,4,5,6,7]

Reply via email to