| /* 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; |
| } |
| |
| |