2 /* { dg-require-effective-target avx512er } */
3 /* { dg-options "-O2 -ffast-math -ftree-vectorize -mavx512er" } */
5 #include "avx512er-check.h"
10 __attribute__ ((noinline
, optimize (0)))
12 compute_rcp_ref (float *a
, float *b
, float *r
)
14 for (int i
= 0; i
< MAX
; i
++)
18 __attribute__ ((noinline
))
20 compute_rcp_exp (float *a
, float *b
, float *r
)
22 for (int i
= 0; i
< MAX
; i
++)
34 for (int i
= 0; i
< MAX
; i
++)
36 a
[i
] = 179.345 - 6.5645 * i
;
37 b
[i
] = 8765.987 - 8.6756 * i
;
40 compute_rcp_ref (a
, b
, ref
);
41 compute_rcp_exp (a
, b
, exp
);
43 for (int i
= 0; i
< MAX
; i
++)
45 float rel_err
= (ref
[i
] - exp
[i
]) / ref
[i
];
46 rel_err
= rel_err
> 0.0 ? rel_err
: -rel_err
;