This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] recent C++ Altivec breakage?
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Ziemowit Laski <zlaski at apple dot com>, "Timothy J. Wood" <tjw at omnigroup dot com>
- Cc: gcc List <gcc at gcc dot gnu dot org>, Andrew Pinski <pinskia at physics dot uc dot edu>
- Date: Wed, 3 Mar 2004 23:08:33 -0800
- Subject: Re: [tree-ssa] recent C++ Altivec breakage?
- References: <6700E168-6DA0-11D8-93F3-0003933F3BC2@omnigroup.com>
On Mar 3, 2004, at 21:54, Timothy J. Wood wrote:
Sometime recently the Altivec splat instructions seem to have gone
south:
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14425>
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14426>
This was working a week or so ago and I was hoping to retest the
example that caused me to log
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042> a while back (now
that it is supposedly fixed). Unfortunately, I can't build even
fairly simple Altivec programs with tree-ssa right now.
Both of these were broken by:
2004-02-21 Ziemowit Laski <zlaski@apple.com>
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific
options.
* config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE):
Define it.
* config/rs6000/altivec.h: #error out if '-maltivec' not
specified.
(vector, pixel, bool): #define to __vector, __pixel and __bool.
(__un_args_eq, __bin_args_eq, __tern_args_eq): Move to
C-specific
portion of header.
(__altivec_link_error_invalid_argument): Remove prototype; will
use
__builtin_altivec_compiletime_error("vec_*") instead.
(vec_*): Fix/complete set of available operation overloads
given the
existence of distinct 'vector bool ...' and 'vector pixel'
types; tighten
cv-correctness of pointer arguments; in C, always check for
correct
argument types before macro expansion.
* config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE):
New macro
defining Darwin/PowerPC-specific '-f[no-]altivec' and
'-W[no-]altivec-long-deprecated' switches.
* config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
'__vector', '__pixel' and '__bool' macros using
'__attribute__((altivec(...)))' types.
* config/rs6000/rs6000.c (bool_char_type_node,
bool_short_type_node,
bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
New type nodes.
(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch):
New, for
handling '-W[no-]altivec-long-deprecated'.
(rs6000_override_options): Handle
'-W[no-]altivec-long-deprecated'.
(rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
altivec_expand_dst_builtin): Remove casts from integer literals.
(altivec_expand_builtin): Likewise; handle expansion of new
'__builtin_altivec_compiletime_error' function.
(rs6000_init_builtins): Initialize 'vector bool ...' and
'vector pixel'
types, and make them distinct from other vector types; register
'__builtin_altivec_compiletime_error' function.
(print_operand): For 'P', print a full target register name
instead of
merely its number.
(rs6000_attribute_table): Add "altivec" attribute.
(rs6000_handle_altivec_attribute): New function.
* config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
'-m[no-]-warn-altivec-long' (which
'-W[no-]altivec-long-deprecated'
maps to).
(rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch):
Forward
declare.
(ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
Thanks,
Andrew Pinski