From: Andreas Krebbel Date: Fri, 19 Feb 2016 10:38:22 +0000 (+0000) Subject: S/390: Add single element vector types to iterators. X-Git-Tag: upstream/12.2.0~48736 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90573e884b212c911f1804a56904974d5d9e7bc7;p=platform%2Fupstream%2Fgcc.git S/390: Add single element vector types to iterators. gcc/ChangeLog: * config/s390/vector.md (VI, VI_QHS): Add single element vector types to mode iterators. (vec_double): ... and mode attribute. * config/s390/vx-builtins.md (non_vec_int): Likewise. From-SVN: r233555 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 471a01b..d932ee8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2016-02-19 Andreas Krebbel + * config/s390/vector.md (VI, VI_QHS): Add single element vector + types to mode iterators. + (vec_double): ... and mode attribute. + * config/s390/vx-builtins.md (non_vec_int): Likewise. + +2016-02-19 Andreas Krebbel + * config/s390/vector.md ("add3", "sub3"): Change the predicate of op2 from nonimmediate to general and let reload fix it if necessary. diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index cdb9ba6..3101057 100644 --- a/gcc/config/s390/vector.md +++ b/gcc/config/s390/vector.md @@ -43,8 +43,8 @@ ; All integer vector modes supported in a vector register + TImode (define_mode_iterator VIT [V1QI V2QI V4QI V8QI V16QI V1HI V2HI V4HI V8HI V1SI V2SI V4SI V1DI V2DI V1TI TI]) -(define_mode_iterator VI [V2QI V4QI V8QI V16QI V2HI V4HI V8HI V2SI V4SI V2DI]) -(define_mode_iterator VI_QHS [V4QI V8QI V16QI V4HI V8HI V4SI]) +(define_mode_iterator VI [V1QI V2QI V4QI V8QI V16QI V1HI V2HI V4HI V8HI V1SI V2SI V4SI V1DI V2DI]) +(define_mode_iterator VI_QHS [V1QI V2QI V4QI V8QI V16QI V1HI V2HI V4HI V8HI V1SI V2SI V4SI]) (define_mode_iterator V_8 [V1QI]) (define_mode_iterator V_16 [V2QI V1HI]) @@ -100,11 +100,11 @@ (V1TF "V1TI")]) ; Vector with doubled element size. -(define_mode_attr vec_double [(V2QI "V1HI") (V4QI "V2HI") (V8QI "V4HI") (V16QI "V8HI") - (V2HI "V1SI") (V4HI "V2SI") (V8HI "V4SI") - (V2SI "V1DI") (V4SI "V2DI") - (V2DI "V1TI") - (V2SF "V1DF") (V4SF "V2DF")]) +(define_mode_attr vec_double [(V1QI "V1HI") (V2QI "V1HI") (V4QI "V2HI") (V8QI "V4HI") (V16QI "V8HI") + (V1HI "V1SI") (V2HI "V1SI") (V4HI "V2SI") (V8HI "V4SI") + (V1SI "V1DI") (V2SI "V1DI") (V4SI "V2DI") + (V1DI "V1TI") (V2DI "V1TI") + (V1SF "V1DF") (V2SF "V1DF") (V4SF "V2DF")]) ; Vector with half the element size. (define_mode_attr vec_half [(V1HI "V2QI") (V2HI "V4QI") (V4HI "V8QI") (V8HI "V16QI") diff --git a/gcc/config/s390/vx-builtins.md b/gcc/config/s390/vx-builtins.md index 81a2d07..65e683c9 100644 --- a/gcc/config/s390/vx-builtins.md +++ b/gcc/config/s390/vx-builtins.md @@ -28,12 +28,12 @@ ; The element type of the vector with floating point modes translated ; to int modes of the same size. -(define_mode_attr non_vec_int[(V2QI "QI") (V4QI "QI") (V8QI "QI") (V16QI "QI") - (V2HI "HI") (V4HI "HI") (V8HI "HI") - (V2SI "SI") (V4SI "SI") - (V2DI "DI") - (V2SF "SI") (V4SF "SI") - (V2DF "DI")]) +(define_mode_attr non_vec_int[(V1QI "QI") (V2QI "QI") (V4QI "QI") (V8QI "QI") (V16QI "QI") + (V1HI "HI") (V2HI "HI") (V4HI "HI") (V8HI "HI") + (V1SI "SI") (V2SI "SI") (V4SI "SI") + (V1DI "DI") (V2DI "DI") + (V1SF "SI") (V2SF "SI") (V4SF "SI") + (V1DF "DI") (V2DF "DI")]) ; Condition code modes generated by int comparisons (define_mode_iterator VICMP [CCVEQ CCVH CCVHU])