diff options
Diffstat (limited to 'gcc/testsuite/gcc.apple/cw-altivec-asm-block.c')
-rw-r--r-- | gcc/testsuite/gcc.apple/cw-altivec-asm-block.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c b/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c new file mode 100644 index 00000000000..1b3baaa6e2f --- /dev/null +++ b/gcc/testsuite/gcc.apple/cw-altivec-asm-block.c @@ -0,0 +1,35 @@ +/* APPLE LOCAL file CW asm blocks with AltiVec insn. */ +/* Test asm-syntax blocks within functions. */ + +/* { dg-do run { target powerpc*-*-darwin* } } */ +/* { dg-options "-faltivec -fasm-blocks" } */ + +extern void abort(); + +int main( void ) +{ + int i; + register vector float a = (vector float) (1.0f); + register vector float b = (vector float) (2.0f); + register vector float c = (vector float) (3.0f); + float result[4] = {5.00, 5.00, 5.00, 5.00}; + union u { + vector float v; + float fv[4]; + } uv; + + asm + { + vmaddfp c, a, c, b + } + + uv.v = c; + + for (i=0; i < 4; i++) + if (uv.fv[i] != result[i]) + abort(); + + return 0; +} + + |