machmode.def (V1DImode): New mode.

* machmode.def (V1DImode): New mode.  A single element vector.
* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
  (unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
* tree.c (build_common_tree_nodes_2): Build
  unsigned_V1DI_type_node and V1D1_type_node.
* c-common.c (c_common_type_for_mode): Return
  unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.

From-SVN: r57248
This commit is contained in:
Nick Clifton 2002-09-17 13:03:40 +00:00 committed by Nick Clifton
parent 838c4534d4
commit 256e9fd21a
6 changed files with 22 additions and 3 deletions

View File

@ -1,3 +1,14 @@
2002-09-17 Nick Clifton <nickc@redhat.com>
* machmode.def (V1DImode): New mode. A single element vector.
* tree.h (TI_UV1DI_TYPE, TI_V1DI_TYPE): New tree_index enums.
(unsigned_V1DI_type_node, V1D1_type_node): New type nodes.
* tree.c (build_common_tree_nodes_2): Build
unsigned_V1DI_type_node and V1D1_type_node.
* c-common.c (c_common_type_for_mode): Return
unsigned_V1DI_type_node or V1D1_type_node for V1DImode.
* rtl.c (class_narrowest_): Start integer vector nodes with V1DImode.
Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it> Tue Sep 17 13:40:13 2002 Nicola Pero <n.pero@mi.flashnet.it>
* doc/objc.texi (Constant string objects): Extended documentation * doc/objc.texi (Constant string objects): Extended documentation

View File

@ -2029,6 +2029,8 @@ c_common_type_for_mode (mode, unsignedp)
return unsignedp ? unsigned_V4HI_type_node : V4HI_type_node; return unsignedp ? unsigned_V4HI_type_node : V4HI_type_node;
case V8QImode: case V8QImode:
return unsignedp ? unsigned_V8QI_type_node : V8QI_type_node; return unsignedp ? unsigned_V8QI_type_node : V8QI_type_node;
case V1DImode:
return unsignedp ? unsigned_V1DI_type_node : V1DI_type_node;
case V16SFmode: case V16SFmode:
return V16SF_type_node; return V16SF_type_node;
case V4SFmode: case V4SFmode:

View File

@ -113,11 +113,10 @@ DEF_MACHMODE (CTImode, "CTI", MODE_COMPLEX_INT, BITS_PER_UNIT*32, 32, 16, COImod
DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, OImode) DEF_MACHMODE (COImode, "COI", MODE_COMPLEX_INT, BITS_PER_UNIT*64, 64, 32, VOIDmode, OImode)
/* Vector modes. */ /* Vector modes. */
/* There are no V1xx vector modes. These are equivalent to normal
scalar modes. */
/* The wider mode field for vectors follows in order of increasing bit /* The wider mode field for vectors follows in order of increasing bit
size with QI coming before HI, HI before SI, and SI before DI size with QI coming before HI, HI before SI, and SI before DI
within same bit sizes. */ within same bit sizes. */
DEF_MACHMODE (V1DImode, "V1DI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 8, V2QImode, DImode)
DEF_MACHMODE (V2QImode, "V2QI", MODE_VECTOR_INT, BITS_PER_UNIT*2, 2, 1, V4QImode, QImode) DEF_MACHMODE (V2QImode, "V2QI", MODE_VECTOR_INT, BITS_PER_UNIT*2, 2, 1, V4QImode, QImode)
DEF_MACHMODE (V2HImode, "V2HI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 2, V8QImode, HImode) DEF_MACHMODE (V2HImode, "V2HI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 2, V8QImode, HImode)
DEF_MACHMODE (V2SImode, "V2SI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 4, V16QImode, SImode) DEF_MACHMODE (V2SImode, "V2SI", MODE_VECTOR_INT, BITS_PER_UNIT*8, 8, 4, V16QImode, SImode)

View File

@ -152,7 +152,7 @@ const enum machine_mode class_narrowest_mode[(int) MAX_MODE_CLASS] = {
/* MODE_CC */ CCmode, /* MODE_CC */ CCmode,
/* MODE_COMPLEX_INT */ CQImode, /* MODE_COMPLEX_INT */ CQImode,
/* MODE_COMPLEX_FLOAT */ QCmode, /* MODE_COMPLEX_FLOAT */ QCmode,
/* MODE_VECTOR_INT */ V2QImode, /* MODE_VECTOR_INT */ V1DImode,
/* MODE_VECTOR_FLOAT */ V2SFmode /* MODE_VECTOR_FLOAT */ V2SFmode
}; };

View File

@ -4775,6 +4775,8 @@ build_common_tree_nodes_2 (short_double)
= make_vector (V8HImode, unsigned_intHI_type_node, 1); = make_vector (V8HImode, unsigned_intHI_type_node, 1);
unsigned_V16QI_type_node unsigned_V16QI_type_node
= make_vector (V16QImode, unsigned_intQI_type_node, 1); = make_vector (V16QImode, unsigned_intQI_type_node, 1);
unsigned_V1DI_type_node
= make_vector (V1DImode, unsigned_intDI_type_node, 1);
V16SF_type_node = make_vector (V16SFmode, float_type_node, 0); V16SF_type_node = make_vector (V16SFmode, float_type_node, 0);
V4SF_type_node = make_vector (V4SFmode, float_type_node, 0); V4SF_type_node = make_vector (V4SFmode, float_type_node, 0);
@ -4787,6 +4789,7 @@ build_common_tree_nodes_2 (short_double)
V2SF_type_node = make_vector (V2SFmode, float_type_node, 0); V2SF_type_node = make_vector (V2SFmode, float_type_node, 0);
V2DF_type_node = make_vector (V2DFmode, double_type_node, 0); V2DF_type_node = make_vector (V2DFmode, double_type_node, 0);
V16QI_type_node = make_vector (V16QImode, intQI_type_node, 0); V16QI_type_node = make_vector (V16QImode, intQI_type_node, 0);
V1DI_type_node = make_vector (V1DImode, intDI_type_node, 0);
} }
/* Returns a vector tree node given a vector mode, the inner type, and /* Returns a vector tree node given a vector mode, the inner type, and

View File

@ -1968,6 +1968,7 @@ enum tree_index
TI_UV2SI_TYPE, TI_UV2SI_TYPE,
TI_UV2SF_TYPE, TI_UV2SF_TYPE,
TI_UV2DI_TYPE, TI_UV2DI_TYPE,
TI_UV1DI_TYPE,
TI_UV16QI_TYPE, TI_UV16QI_TYPE,
TI_V4SF_TYPE, TI_V4SF_TYPE,
@ -1980,6 +1981,7 @@ enum tree_index
TI_V2SF_TYPE, TI_V2SF_TYPE,
TI_V2DF_TYPE, TI_V2DF_TYPE,
TI_V2DI_TYPE, TI_V2DI_TYPE,
TI_V1DI_TYPE,
TI_V16QI_TYPE, TI_V16QI_TYPE,
TI_MAIN_IDENTIFIER, TI_MAIN_IDENTIFIER,
@ -2048,6 +2050,7 @@ extern GTY(()) tree global_trees[TI_MAX];
#define unsigned_V4HI_type_node global_trees[TI_UV4HI_TYPE] #define unsigned_V4HI_type_node global_trees[TI_UV4HI_TYPE]
#define unsigned_V2SI_type_node global_trees[TI_UV2SI_TYPE] #define unsigned_V2SI_type_node global_trees[TI_UV2SI_TYPE]
#define unsigned_V2DI_type_node global_trees[TI_UV2DI_TYPE] #define unsigned_V2DI_type_node global_trees[TI_UV2DI_TYPE]
#define unsigned_V1DI_type_node global_trees[TI_UV1DI_TYPE]
#define V16QI_type_node global_trees[TI_V16QI_TYPE] #define V16QI_type_node global_trees[TI_V16QI_TYPE]
#define V4SF_type_node global_trees[TI_V4SF_TYPE] #define V4SF_type_node global_trees[TI_V4SF_TYPE]
@ -2060,6 +2063,7 @@ extern GTY(()) tree global_trees[TI_MAX];
#define V2DI_type_node global_trees[TI_V2DI_TYPE] #define V2DI_type_node global_trees[TI_V2DI_TYPE]
#define V2DF_type_node global_trees[TI_V2DF_TYPE] #define V2DF_type_node global_trees[TI_V2DF_TYPE]
#define V16SF_type_node global_trees[TI_V16SF_TYPE] #define V16SF_type_node global_trees[TI_V16SF_TYPE]
#define V1DI_type_node global_trees[TI_V1DI_TYPE]
/* An enumeration of the standard C integer types. These must be /* An enumeration of the standard C integer types. These must be
ordered so that shorter types appear before longer ones, and so ordered so that shorter types appear before longer ones, and so