S/390: Add single element vector types to iterators.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 19 Feb 2016 10:38:22 +0000 (10:38 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Fri, 19 Feb 2016 10:38:22 +0000 (10:38 +0000)
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

gcc/ChangeLog
gcc/config/s390/vector.md
gcc/config/s390/vx-builtins.md

index 471a01b..d932ee8 100644 (file)
@@ -1,5 +1,12 @@
 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
 
+       * 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  <krebbel@linux.vnet.ibm.com>
+
        * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
        Change the predicate of op2 from nonimmediate to general and let
        reload fix it if necessary.
index cdb9ba6..3101057 100644 (file)
@@ -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])
                            (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")
index 81a2d07..65e683c 100644 (file)
 
 ; 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])