My Small AltiVec Patch - TAKE 3

Ziemowit Laski
Sat Feb 7 03:53:00 GMT 2004

Per Aldy's request, I've isolated the rs6000-specific stuff
into a separate patch (the occasional non-rs6000 code is being
touched in a super-obvious way), and re-did the diffs with
-u (is there a community consensus on this, BTW?).

Bootstrapping & testing is currently in progress.  OK to commit if/when 
the tests
complete and reveal no regressions (and I will announce when that 


2004-02-06  Ziemowit Laski  <>

	* c-common.c (vector_size_helper): Make externally visible.
	* c-common.h (vector_size_helper): Add prototype.
	* tree.c (make_vector): Make externally visible.
	* tree.h (make_vector): Add prototype.
	* 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;
	wrap C++-specific portion of header with 'extern "C++"'.
	(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; 
	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 Darwin, print a full 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
	(ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.

2004-02-06  Ziemowit Laski  <>

	* g++.dg/ext/altivec-1.C: Generalize target triple.
	* g++.dg/ext/altivec-[2-3].C: New test cases.
	* g++.dg/ext/altivec_check.h: New file.
	* gcc.dg/altivec-1.c: Generalize target triple;
	include altivec_check.h and call altivec_check().
	* gcc.dg/altivec-[2-5].c: Generalize target triple.
	* gcc.dg/altivec-6.c: New test case.
	* gcc.dg/altivec-[7-9].c: Generalize target triple; add
	type casts as needed.
	* gcc.dg/altivec-10.c: Include altivec_check.h and call
	* gcc.dg/altivec-12.c: New test case.
	* gcc.dg/altivec-varargs-1.c: Generalize target triple;
	include altivec_check.h and call altivec_check().
	* gcc.dg/altivec_check.h: New file.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: altivec-20040206.diff.gz
Type: application/x-gzip
Size: 35094 bytes
Desc: not available
URL: <>
-------------- next part --------------

Ziemowit Laski                 1 Infinite Loop, MS 301-2K
Mac OS X Compiler Group        Cupertino, CA USA  95014-2083
Apple Computer, Inc.           +1.408.974.6229  Fax .5477

More information about the Gcc-patches mailing list