aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2021-07-05 21:05:10 +0200
committerUros Bizjak <ubizjak@gmail.com>2021-07-05 21:05:10 +0200
commitbe8749f939a933bca6de19d9cf1a510d5954c2fa (patch)
tree18ebc0b345a465057784661a80cbd102b3ec34d4 /gcc/gcc.c
parent8e0b3827bbab6bf92d88d00909ecf8fb43365f39 (diff)
downloadgcc-be8749f939a933bca6de19d9cf1a510d5954c2fa.zip
gcc-be8749f939a933bca6de19d9cf1a510d5954c2fa.tar.gz
gcc-be8749f939a933bca6de19d9cf1a510d5954c2fa.tar.bz2
i386: Implement 4-byte vector (V4QI/V2HI) constant permutations
2021-07-05 Uroš Bizjak <ubizjak@gmail.com> gcc/ * config/i386/i386-expand.c (ix86_split_mmx_punpck): Handle V4QI and V2HI modes. (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. (expand_vec_perm_pshufb): Rewrite to use switch statemets. Handle 4-byte dual operands with TARGET_XOP and single operands with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and mmx_pshufbv4qi3 for TARGET_SSSE3. (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. (expand_vec_perm_interleave2): Allow 4-byte vector modes. (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. (expand_vec_perm_even_odd_1): Handle V4QI mode. (expand_vec_perm_broadcast_1): Handle V4QI mode. (ix86_vectorize_vec_perm_const): Handle V4QI mode. * config/i386/mmx.md (mmx_ppermv32): New insn pattern. (mmx_pshufbv4qi3): Ditto. (*mmx_pblendw32): Ditto. (*mmx_pblendw64): Rename from *mmx_pblendw. (mmx_punpckhbw_low): New insn_and_split pattern. (mmx_punpcklbw_low): Ditto.
Diffstat (limited to 'gcc/gcc.c')
0 files changed, 0 insertions, 0 deletions