... and use equivalent VI_AVX512BW mode iterator instead. No functional changes.
2016-12-27 Uros Bizjak <ubiz...@gmail.com> * config/i386/i386.md (VI_512): Remove. (vcond<V_512:mode><VI_AVX512BW:mode>): Use VI_AVX512BW mode iterator instead of VI_512. (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Committed to mainline SVN. Uros.
Index: config/i386/sse.md =================================================================== --- config/i386/sse.md (revision 243932) +++ config/i386/sse.md (working copy) @@ -521,12 +521,6 @@ ;; All 256bit vector integer modes (define_mode_iterator VI_256 [V32QI V16HI V8SI V4DI]) -;; All 512bit vector integer modes -(define_mode_iterator VI_512 - [(V64QI "TARGET_AVX512BW") - (V32HI "TARGET_AVX512BW") - V16SI V8DI]) - ;; Various 128bit vector integer mode combinations (define_mode_iterator VI12_128 [V16QI V8HI]) (define_mode_iterator VI14_128 [V16QI V4SI]) @@ -11249,17 +11243,17 @@ (set_attr "prefix" "orig,vex") (set_attr "mode" "TI")]) -(define_expand "vcond<V_512:mode><VI_512:mode>" +(define_expand "vcond<V_512:mode><VI_AVX512BW:mode>" [(set (match_operand:V_512 0 "register_operand") (if_then_else:V_512 (match_operator 3 "" - [(match_operand:VI_512 4 "nonimmediate_operand") - (match_operand:VI_512 5 "general_operand")]) + [(match_operand:VI_AVX512BW 4 "nonimmediate_operand") + (match_operand:VI_AVX512BW 5 "general_operand")]) (match_operand:V_512 1) (match_operand:V_512 2)))] "TARGET_AVX512F && (GET_MODE_NUNITS (<V_512:MODE>mode) - == GET_MODE_NUNITS (<VI_512:MODE>mode))" + == GET_MODE_NUNITS (<VI_AVX512BW:MODE>mode))" { bool ok = ix86_expand_int_vcond (operands); gcc_assert (ok); @@ -11315,17 +11309,17 @@ DONE; }) -(define_expand "vcondu<V_512:mode><VI_512:mode>" +(define_expand "vcondu<V_512:mode><VI_AVX512BW:mode>" [(set (match_operand:V_512 0 "register_operand") (if_then_else:V_512 (match_operator 3 "" - [(match_operand:VI_512 4 "nonimmediate_operand") - (match_operand:VI_512 5 "nonimmediate_operand")]) + [(match_operand:VI_AVX512BW 4 "nonimmediate_operand") + (match_operand:VI_AVX512BW 5 "nonimmediate_operand")]) (match_operand:V_512 1 "general_operand") (match_operand:V_512 2 "general_operand")))] "TARGET_AVX512F && (GET_MODE_NUNITS (<V_512:MODE>mode) - == GET_MODE_NUNITS (<VI_512:MODE>mode))" + == GET_MODE_NUNITS (<VI_AVX512BW:MODE>mode))" { bool ok = ix86_expand_int_vcond (operands); gcc_assert (ok);