[Bug target/95905] Failure to optimize _mm_unpacklo_epi8 with 0 as right operand to _mm_cvtepu8_epi16

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 13 07:06:40 GMT 2021


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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:b668a06e37f72fd96bacd6769990ec97dac4ac6d

commit r11-6628-gb668a06e37f72fd96bacd6769990ec97dac4ac6d
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Wed Jan 13 08:02:54 2021 +0100

    i386: Optimize _mm_unpacklo_epi8 of 0 vector as second argument or similar
VEC_PERM_EXPRs into pmovzx [PR95905]

    The following patch adds patterns (so far 128-bit only) for permutations
    like { 0 16 1 17 2 18 3 19 4 20 5 21 6 22 7 23 } where the second
    operand is CONST0_RTX CONST_VECTOR to be emitted as pmovzx.

    2021-01-13  Jakub Jelinek  <jakub@redhat.com>

            PR target/95905
            * config/i386/predicates.md (pmovzx_parallel): New predicate.
            * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
            define_insn_and_split pattern.
            (*sse4_1_zero_extendv4hiv4si2_3): Likewise.
            (*sse4_1_zero_extendv2siv2di2_3): Likewise.

            * gcc.target/i386/pr95905-1.c: New test.
            * gcc.target/i386/pr95905-2.c: New test.


More information about the Gcc-bugs mailing list