This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/30254] Need method to determine if AltiVec PIM is available
- From: "iano at apple dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Dec 2006 20:52:48 -0000
- Subject: [Bug target/30254] Need method to determine if AltiVec PIM is available
- References: <bug-30254-13128@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from iano at apple dot com 2006-12-18 20:52 -------
I will nominate the following as a test case. It should compile without
errors:
for each affected arch:
gcc test_case.c
gcc test_case.c -maltivec
gcc test_case.c -faltivec
gcc test_case.c -maltivec -DINCLUDE_HEADER
test_case.c:
#include <stdio.h>
#if defined( INCLUDE_HEADER )
#include <altivec.h>
#endif
/* The approved method for detecting PIM availability on GCC */
#if defined( __VEC__ )
#if defined( __GNUC__ ) && ! defined __APPLE_ALTIVEC__
#if defined _ALTIVEC_H /* defined by altivec.h */
#define __ALTIVEC_PIM__
#endif
#else
#define __ALTIVEC_PIM__
#endif /* __GNUC__ */
#endif /* __VEC__ */
int main( void )
{
#if defined( __ALTIVEC_PIM__ )
vector unsigned char v = (vector unsigned char) (
'A','l','t','i','V','e','c',' ','i','s',' ','o','n', 0, 0, 0 );
v = vec_or( v, v );
printf( "%vc\n", v ); //note, some operating systems don't
support %v format specifiers, which is a separate problem
#else
printf( "AltiVec is off\n" );
#endif
return 0;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30254