[llvm-commits] [llvm-gcc-4.0] r42997 - /llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c
Dale Johannesen
dalej at apple.com
Mon Oct 15 11:42:17 PDT 2007
Author: johannes
Date: Mon Oct 15 13:42:17 2007
New Revision: 42997
URL: http://llvm.org/viewvc/llvm-project?rev=42997&view=rev
Log:
Set modes for Altivec bool and pixel types. From vecLib.
Modified:
llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c
Modified: llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c?rev=42997&r1=42996&r2=42997&view=diff
==============================================================================
--- llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c (original)
+++ llvm-gcc-4.0/trunk/gcc/config/rs6000/rs6000.c Mon Oct 15 13:42:17 2007
@@ -9161,22 +9161,6 @@
unsigned_V8HI_type_node = build_vector_type (unsigned_intHI_type_node, 8);
unsigned_V4SI_type_node = build_vector_type (unsigned_intSI_type_node, 4);
- /* APPLE LOCAL begin LLVM */
-#ifdef ENABLE_LLVM
- /* LLVM doesn't initialize the RTL backend, so build_vector_type will assign
- all of these types BLKmode. This interferes with rs6000.c-specific
- handling of -faltivec overloads (an apple local patch). As such, give them
- the correct modes here manually. */
- TYPE_MODE (V4SI_type_node) = V4SImode;
- TYPE_MODE (V4SF_type_node) = V4SFmode;
- TYPE_MODE (V8HI_type_node) = V8HImode;
- TYPE_MODE (V16QI_type_node) = V16QImode;
- TYPE_MODE (unsigned_V4SI_type_node) = V4SImode;
- TYPE_MODE (unsigned_V8HI_type_node) = V8HImode;
- TYPE_MODE (unsigned_V16QI_type_node) = V16QImode;
-#endif
- /* APPLE LOCAL end LLVM */
-
opaque_V2SF_type_node = build_opaque_vector_type (float_type_node, 2);
opaque_V2SI_type_node = build_opaque_vector_type (intSI_type_node, 2);
opaque_p_V2SI_type_node = build_pointer_type (opaque_V2SI_type_node);
@@ -9208,6 +9192,26 @@
bool_V4SI_type_node = build_vector_type (bool_int_type_node, 4);
pixel_V8HI_type_node = build_vector_type (pixel_type_node, 8);
+ /* APPLE LOCAL begin LLVM */
+#ifdef ENABLE_LLVM
+ /* LLVM doesn't initialize the RTL backend, so build_vector_type will assign
+ all of these types BLKmode. This interferes with rs6000.c-specific
+ handling of -faltivec overloads (an apple local patch). As such, give them
+ the correct modes here manually. */
+ TYPE_MODE (V4SI_type_node) = V4SImode;
+ TYPE_MODE (V4SF_type_node) = V4SFmode;
+ TYPE_MODE (V8HI_type_node) = V8HImode;
+ TYPE_MODE (V16QI_type_node) = V16QImode;
+ TYPE_MODE (unsigned_V4SI_type_node) = V4SImode;
+ TYPE_MODE (unsigned_V8HI_type_node) = V8HImode;
+ TYPE_MODE (unsigned_V16QI_type_node) = V16QImode;
+ TYPE_MODE (bool_V16QI_type_node) = V16QImode;
+ TYPE_MODE (bool_V8HI_type_node) = V8HImode;
+ TYPE_MODE (bool_V4SI_type_node) = V4SImode;
+ TYPE_MODE (pixel_V8HI_type_node) = V8HImode;
+#endif
+ /* APPLE LOCAL end LLVM */
+
(*lang_hooks.decls.pushdecl) (build_decl (TYPE_DECL,
get_identifier ("__vector unsigned char"),
unsigned_V16QI_type_node));
More information about the llvm-commits
mailing list