| /* { dg-do compile } */ |
| /* { dg-require-effective-target arm_neon_ok } */ |
| /* { dg-options "-O -g" } */ |
| /* { dg-add-options arm_neon } */ |
| |
| #include <arm_neon.h> |
| |
| void f1 (volatile float32x4_t *dest, volatile float32x4x4_t *src, int n) |
| { |
| float32x4x4_t a5, a6, a7, a8, a9; |
| int i; |
| |
| a5 = *src; |
| a6 = *src; |
| a7 = *src; |
| a8 = *src; |
| a9 = *src; |
| while (n--) |
| { |
| for (i = 0; i < 8; i++) |
| { |
| float32x4x4_t a0, a1, a2, a3, a4; |
| |
| a0 = *src; |
| a1 = *src; |
| a2 = *src; |
| a3 = *src; |
| a4 = *src; |
| *src = a0; |
| *dest = a0.val[0]; |
| *dest = a0.val[3]; |
| *src = a1; |
| *dest = a1.val[0]; |
| *dest = a1.val[3]; |
| *src = a2; |
| *dest = a2.val[0]; |
| *dest = a2.val[3]; |
| *src = a3; |
| *dest = a3.val[0]; |
| *dest = a3.val[3]; |
| *src = a4; |
| *dest = a4.val[0]; |
| *dest = a4.val[3]; |
| } |
| *src = a5; |
| *dest = a5.val[0]; |
| *dest = a5.val[3]; |
| *src = a6; |
| *dest = a6.val[0]; |
| *dest = a6.val[3]; |
| *src = a7; |
| *dest = a7.val[0]; |
| *dest = a7.val[3]; |
| *src = a8; |
| *dest = a8.val[0]; |
| *dest = a8.val[3]; |
| *src = a9; |
| *dest = a9.val[0]; |
| *dest = a9.val[3]; |
| } |
| } |