aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/c-common.c4
-rw-r--r--gcc/tree.c10
-rw-r--r--gcc/tree.h4
4 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a617df..a0bac32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2001-10-31 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.h (tree_index): Add support for V16QI and V8HI.
+ (V8HI_type_node): New.
+ (V16QI_type_node): New.
+
+ * tree.c (build_common_tree_nodes_2): Same.
+
+ * c-common.c (type_for_mode): Same.
+
2001-10-31 Kazu Hirata <kazu@hxi.com>
* config/i386/att.h: Fix comment formatting.
diff --git a/gcc/c-common.c b/gcc/c-common.c
index a423d53..ee633a5 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -1340,6 +1340,10 @@ type_for_mode (mode, unsignedp)
return build_pointer_type (integer_type_node);
#ifdef VECTOR_MODE_SUPPORTED_P
+ if (mode == TYPE_MODE (V16QI_type_node) && VECTOR_MODE_SUPPORTED_P (mode))
+ return V16QI_type_node;
+ if (mode == TYPE_MODE (V8HI_type_node) && VECTOR_MODE_SUPPORTED_P (mode))
+ return V8HI_type_node;
if (mode == TYPE_MODE (V4SF_type_node) && VECTOR_MODE_SUPPORTED_P (mode))
return V4SF_type_node;
if (mode == TYPE_MODE (V4SI_type_node) && VECTOR_MODE_SUPPORTED_P (mode))
diff --git a/gcc/tree.c b/gcc/tree.c
index 1912b8b..aec12422 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -4875,8 +4875,18 @@ build_common_tree_nodes_2 (short_double)
TYPE_MODE (V8QI_type_node) = V8QImode;
finish_vector_type (V8QI_type_node);
+ V8HI_type_node = make_node (VECTOR_TYPE);
+ TREE_TYPE (V8HI_type_node) = intHI_type_node;
+ TYPE_MODE (V8HI_type_node) = V8HImode;
+ finish_vector_type (V8HI_type_node);
+
V2SF_type_node = make_node (VECTOR_TYPE);
TREE_TYPE (V2SF_type_node) = float_type_node;
TYPE_MODE (V2SF_type_node) = V2SFmode;
finish_vector_type (V2SF_type_node);
+
+ V16QI_type_node = make_node (VECTOR_TYPE);
+ TREE_TYPE (V16QI_type_node) = intQI_type_node;
+ TYPE_MODE (V16QI_type_node) = V16QImode;
+ finish_vector_type (V16QI_type_node);
}
diff --git a/gcc/tree.h b/gcc/tree.h
index daa2297..93ca9af 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1862,10 +1862,12 @@ enum tree_index
TI_V4SF_TYPE,
TI_V4SI_TYPE,
+ TI_V8HI_TYPE,
TI_V8QI_TYPE,
TI_V4HI_TYPE,
TI_V2SI_TYPE,
TI_V2SF_TYPE,
+ TI_V16QI_TYPE,
TI_MAIN_IDENTIFIER,
@@ -1926,9 +1928,11 @@ extern tree global_trees[TI_MAX];
#define main_identifier_node global_trees[TI_MAIN_IDENTIFIER]
#define MAIN_NAME_P(NODE) (IDENTIFIER_NODE_CHECK (NODE) == main_identifier_node)
+#define V16QI_type_node global_trees[TI_V16QI_TYPE]
#define V4SF_type_node global_trees[TI_V4SF_TYPE]
#define V4SI_type_node global_trees[TI_V4SI_TYPE]
#define V8QI_type_node global_trees[TI_V8QI_TYPE]
+#define V8HI_type_node global_trees[TI_V8HI_TYPE]
#define V4HI_type_node global_trees[TI_V4HI_TYPE]
#define V2SI_type_node global_trees[TI_V2SI_TYPE]
#define V2SF_type_node global_trees[TI_V2SF_TYPE]