+2016-12-27 Uros Bizjak <ubizjak@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.
+
2016-12-27 Jakub Jelinek <jakub@redhat.com>
PR translation/78922
;; 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])
(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);
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);