This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA/RFT] Tree-level lowering of generic vectors, part 3


Ok with those changes.

Thanks. So here we go with part 3, which shuffles vector modes to the appropriate machine-dependent files.


(To Janis: sorry for attaching the wrong patch and wasting your time -- this is the part for which I'd like testing).

Paolo
2004-07-22  Paolo Bonzini  <bonzini@gnu.org>

	* machmode.def: Remove vector modes.
	* config/alpha/alpha-modes.def: Add supported vector modes.
	* config/arm/arm-modes.def: Likewise.
	* config/frv/frv-modes.def: Likewise.
	* config/i386/i386-modes.def: Likewise.
	* config/rs6000/rs6000-modes.def: Likewise.
	* config/sh/sh-modes.def: Likewise.

Index: machmode.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/machmode.def,v
retrieving revision 1.27
diff -u -r1.27 machmode.def
--- machmode.def	6 Nov 2003 08:38:50 -0000	1.27
+++ machmode.def	22 Jul 2004 08:26:17 -0000
@@ -186,36 +186,6 @@
 COMPLEX_MODES (INT);
 COMPLEX_MODES (FLOAT);
 
-/* Vector modes.  */
-VECTOR_MODES (INT, 2);        /*                 V2QI */
-VECTOR_MODES (INT, 4);        /*            V4QI V2HI */
-VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
-VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI */
-/* VECTOR_MODES (INT, 32);             V8SI V4DI      */
-/* VECTOR_MODES (INT, 64);             V8DI           */
-
-VECTOR_MODE (INT, SI, 8)
-VECTOR_MODE (INT, DI, 4);
-VECTOR_MODE (INT, DI, 8);
-
-/* PPC uses this to distinguish between DImode passed in
-   float registers and DImode passed in vector registers.
-   It would be in rs6000-modes.def but it's referenced in
-   c-common.c.  FIXME.  */
-
-VECTOR_MODE (INT, DI, 1);
-
-VECTOR_MODES (FLOAT, 4);      /*                 V2HF */
-VECTOR_MODES (FLOAT, 8);      /*            V4HF V2SF */
-VECTOR_MODES (FLOAT, 16);     /*       V8HF V4SF V2DF */
-/* VECTOR_MODES (FLOAT, 32);           V8SF V4DF      */
-/* VECTOR_MODES (FLOAT, 64);     V16SF V8DF           */
-
-VECTOR_MODE (FLOAT, SF, 8);
-VECTOR_MODE (FLOAT, SF, 16);
-VECTOR_MODE (FLOAT, DF, 4);
-VECTOR_MODE (FLOAT, DF, 8);
-
 /* The symbol Pmode stands for one of the above machine modes (usually SImode).
    The tm.h file specifies which one.  It is not a distinct mode.  */
 
Index: config/alpha/alpha-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha-modes.def,v
retrieving revision 1.2
diff -u -r1.2 alpha-modes.def
--- config/alpha/alpha-modes.def	25 Dec 2003 15:17:34 -0000	1.2
+++ config/alpha/alpha-modes.def	22 Jul 2004 08:26:17 -0000
@@ -21,3 +21,8 @@
 /* 128-bit floating point.  This gets reset in alpha_override_options
    if VAX float format is in use.  */
 FLOAT_MODE (TF, 16, ieee_quad_format);
+
+/* Vector modes.  */
+VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
+VECTOR_MODE (INT, QI, 4);     /*                 V4QI */
+VECTOR_MODE (INT, QI, 2);     /*                 V2QI */
Index: config/arm/arm-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm-modes.def,v
retrieving revision 1.5
diff -u -r1.5 arm-modes.def
--- config/arm/arm-modes.def	25 Dec 2003 15:17:36 -0000	1.5
+++ config/arm/arm-modes.def	22 Jul 2004 08:26:17 -0000
@@ -50,3 +50,10 @@
 CC_MODE (CC_DGTU);
 CC_MODE (CC_C);
 CC_MODE (CC_N);
+
+/* Vector modes.  */
+VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
+VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI */
+VECTOR_MODES (FLOAT, 8);      /*            V4HF V2SF */
+VECTOR_MODES (FLOAT, 16);     /*       V8HF V4SF V2DF */
+
Index: config/frv/frv-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/frv/frv-modes.def,v
retrieving revision 1.3
diff -u -r1.3 frv-modes.def
--- config/frv/frv-modes.def	13 Oct 2003 21:16:26 -0000	1.3
+++ config/frv/frv-modes.def	22 Jul 2004 08:26:17 -0000
@@ -28,3 +28,6 @@
 CC_MODE (CC_UNS);
 CC_MODE (CC_FP);
 CC_MODE (CC_CCR);
+
+VECTOR_MODE (INT, QI, 4);     /*                 V4QI */
+VECTOR_MODE (INT, SI, 4);     /*                 V4SI */
Index: config/i386/i386-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386-modes.def,v
retrieving revision 1.6
diff -u -r1.6 i386-modes.def
--- config/i386/i386-modes.def	30 Oct 2003 23:27:30 -0000	1.6
+++ config/i386/i386-modes.def	22 Jul 2004 08:26:17 -0000
@@ -60,3 +60,15 @@
 CC_MODE (CCZ);
 CC_MODE (CCFP);
 CC_MODE (CCFPU);
+
+/* Vector modes.  */
+VECTOR_MODES (INT, 4);        /*            V4QI V2HI */
+VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
+VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI */
+VECTOR_MODES (FLOAT, 8);      /*            V4HF V2SF */
+VECTOR_MODES (FLOAT, 16);     /*       V8HF V4SF V2DF */
+VECTOR_MODE (INT, DI, 4);     /*                 V4DI */
+VECTOR_MODE (INT, SI, 8);     /*                 V8SI */
+
+/* The symbol Pmode stands for one of the above machine modes (usually SImode).
+   The tm.h file specifies which one.  It is not a distinct mode.  */
Index: config/rs6000/rs6000-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000-modes.def,v
retrieving revision 1.4
diff -u -r1.4 rs6000-modes.def
--- config/rs6000/rs6000-modes.def	31 Dec 2003 00:25:51 -0000	1.4
+++ config/rs6000/rs6000-modes.def	22 Jul 2004 08:26:17 -0000
@@ -38,3 +38,10 @@
 CC_MODE (CCUNS);
 CC_MODE (CCFP);
 CC_MODE (CCEQ);
+
+/* Vector modes.  */
+VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
+VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI */
+VECTOR_MODE (INT, DI, 1);
+VECTOR_MODES (FLOAT, 8);      /*            V4HF V2SF */
+VECTOR_MODES (FLOAT, 16);     /*       V8HF V4SF V2DF */
Index: config/sh/sh-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh-modes.def,v
retrieving revision 1.1
diff -u -r1.1 sh-modes.def
--- config/sh/sh-modes.def	13 Oct 2003 21:16:32 -0000	1.1
+++ config/sh/sh-modes.def	22 Jul 2004 08:26:17 -0000
@@ -21,3 +21,12 @@
 /* The SH uses a partial integer mode to represent the FPSCR register.  */
 PARTIAL_INT_MODE (SI);
 
+/* Vector modes.  */
+VECTOR_MODES (INT, 4);        /*            V4QI V2HI */
+VECTOR_MODES (INT, 8);        /*       V8QI V4HI V2SI */
+VECTOR_MODES (INT, 16);       /* V16QI V8HI V4SI V2DI */
+VECTOR_MODES (FLOAT, 8);      /*            V4HF V2SF */
+VECTOR_MODES (FLOAT, 16);     /*       V8HF V4SF V2DF */
+VECTOR_MODE (INT, DI, 4);     /*                 V4DI */
+VECTOR_MODE (INT, DI, 8);     /*                 V8DI */
+VECTOR_MODE (FLOAT, SF, 16);  /*                V16SF */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]