3 extern float copysignf (float, float);
4 extern float sqrtf (float);
5 extern float fabsf (float);
6 extern void abort (void);
7 float a
[64], b
[64], c
[64], d
[64];
9 __attribute__((noinline
, noclone
)) void
12 a
[0] = copysignf (b
[0], c
[0]) + 1.0f
+ sqrtf (d
[0]);
13 a
[1] = copysignf (b
[1], c
[1]) + 2.0f
+ sqrtf (d
[1]);
14 a
[2] = copysignf (b
[2], c
[2]) + 3.0f
+ sqrtf (d
[2]);
15 a
[3] = copysignf (b
[3], c
[3]) + 4.0f
+ sqrtf (d
[3]);
16 a
[4] = copysignf (b
[4], c
[4]) + 5.0f
+ sqrtf (d
[4]);
17 a
[5] = copysignf (b
[5], c
[5]) + 6.0f
+ sqrtf (d
[5]);
18 a
[6] = copysignf (b
[6], c
[6]) + 7.0f
+ sqrtf (d
[6]);
19 a
[7] = copysignf (b
[7], c
[7]) + 8.0f
+ sqrtf (d
[7]);
22 __attribute__((noinline
, noclone
)) int
27 for (i
= 0; i
< 8; i
++)
30 b
[i
] = (i
& 1) ? -4 * i
: 4 * i
;
31 c
[i
] = (i
& 2) ? -8 * i
: 8 * i
;
35 for (i
= 0; i
< 8; i
++)
36 if (fabsf (((i
& 2) ? -4 * i
: 4 * i
) + 1 + i
+ i
- a
[i
]) >= 0.0001f
)
48 /* { dg-final { scan-tree-dump-times "Vectorized basic-block" 1 "slp" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
49 /* { dg-final { cleanup-tree-dump "slp" } } */