diff options
author | Ilya Tocar <ilya.tocar@intel.com> | 2014-12-08 11:48:01 +0000 |
---|---|---|
committer | Ilya Tocar <tocarip@gcc.gnu.org> | 2014-12-08 14:48:01 +0300 |
commit | 28adf6e75ec45da4aa5da5f54fdc51e5ea2836c0 (patch) | |
tree | 8765bcbddf2ceb1c0bdaa34782bdfa20e1433e55 /gcc | |
parent | 9f9f61155a4836aa57e19405a95852172670b8ef (diff) | |
download | gcc-28adf6e75ec45da4aa5da5f54fdc51e5ea2836c0.zip gcc-28adf6e75ec45da4aa5da5f54fdc51e5ea2836c0.tar.gz gcc-28adf6e75ec45da4aa5da5f54fdc51e5ea2836c0.tar.bz2 |
Enable non-const v64qi permutations.
gcc/
* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
* config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
From-SVN: r218483
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 15f5f26..f22bba8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2014-12-08 Ilya Tocar <ilya.tocar@intel.com> + * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi. + * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi. + +2014-12-08 Ilya Tocar <ilya.tocar@intel.com> + * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi. (expand_vec_perm_vpermi2_vpshub2): New. (ix86_expand_vec_perm_const_1): Use it. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 88dd9f4..1e1716e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -21835,6 +21835,10 @@ ix86_expand_vec_perm_vpermi2 (rtx target, rtx op0, rtx mask, rtx op1, if (TARGET_AVX512VL && TARGET_AVX512BW) gen = gen_avx512vl_vpermi2varv16hi3; break; + case V64QImode: + if (TARGET_AVX512VBMI) + gen = gen_avx512bw_vpermi2varv64qi3; + break; case V32HImode: if (TARGET_AVX512BW) gen = gen_avx512bw_vpermi2varv32hi3; diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 734e6b4..cfbe40c 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -10691,7 +10691,7 @@ (V8SF "TARGET_AVX2") (V4DF "TARGET_AVX2") (V16SF "TARGET_AVX512F") (V8DF "TARGET_AVX512F") (V16SI "TARGET_AVX512F") (V8DI "TARGET_AVX512F") - (V32HI "TARGET_AVX512BW")]) + (V32HI "TARGET_AVX512BW") (V64QI "TARGET_AVX512VBMI")]) (define_expand "vec_perm<mode>" [(match_operand:VEC_PERM_AVX2 0 "register_operand") |