Hi! Just to stress the new testcases some more, I've enabled the vec_perm_const{32hi,64qi} patterns. Got several ICEs in expand_vec_perm_broadcast_1, on the final gcc_unreachable () in the function. That function is only called if it couldn't be broadcasted in a single insn, which I believe for TARGET_AVX512BW must be always possible. Shall I look at this, or do you plan to address this in the near future?
2014-10-03 Jakub Jelinek <ja...@redhat.com> * config/i386/sse.md (VEC_PERM_CONST): Add V32HI and V64QI for TARGET_AVX512BW. --- gcc/config/i386/sse.md.jj 2014-09-26 10:33:18.000000000 +0200 +++ gcc/config/i386/sse.md 2014-10-03 15:03:44.170446452 +0200 @@ -10386,7 +10386,8 @@ (define_mode_iterator VEC_PERM_CONST (V8SI "TARGET_AVX") (V4DI "TARGET_AVX") (V32QI "TARGET_AVX2") (V16HI "TARGET_AVX2") (V16SI "TARGET_AVX512F") (V8DI "TARGET_AVX512F") - (V16SF "TARGET_AVX512F") (V8DF "TARGET_AVX512F")]) + (V16SF "TARGET_AVX512F") (V8DF "TARGET_AVX512F") + (V32HI "TARGET_AVX512BW") (V64QI "TARGET_AVX512BW")]) (define_expand "vec_perm_const<mode>" [(match_operand:VEC_PERM_CONST 0 "register_operand") Jakub