diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/powerpc/altivec-20.c')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/altivec-20.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-20.c b/gcc/testsuite/gcc.target/powerpc/altivec-20.c new file mode 100644 index 000000000..b2c29a979 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/altivec-20.c @@ -0,0 +1,23 @@ +/* { dg-do compile { target powerpc_altivec_ok } } */ +/* { dg-options "-maltivec -mcpu=G5 -O2" } */ + +#include <altivec.h> + +void foo( float scalar) +{ + unsigned long width; + unsigned long x; + vector float vColor; + vector unsigned int selectMask; + vColor = vec_perm( vec_ld( 0, &scalar), vec_ld( 3, &scalar), vec_lvsl( 0, &scalar) ); + + float *destRow; + vector float store, load0; + + for( ; x < width; x++) + { + load0 = vec_sel( vColor, load0, selectMask ); + vec_st( store, 0, destRow ); + store = load0; + } +} |