This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/30254] Need method to determine if AltiVec PIM is available



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]