1/* { dg-do run } */
2/* { dg-options "-mavx512f -O2" } */
3/* { dg-require-effective-target avx512f } */
4
5#define SIZE (128 / 32)
6
7#include <math.h>
8#include "avx512f-check.h"
9
10static void
11compute_vgetexpss (float *s, float *r)
12{
13  r[0] = floor (log (s[0]) / log (2));
14}
15
16void static
17avx512f_test (void)
18{
19  int i;
20  union128 res1, s1;
21  float res_ref[SIZE];
22
23  for (i = 0; i < SIZE; i++)
24    {
25      s1.a[i] = 5.0 - i;
26      res_ref[i] = s1.a[i];
27    }
28
29  res1.x = _mm_getexp_ss (s1.x, s1.x);
30
31  compute_vgetexpss (s1.a, res_ref);
32
33  if (check_fp_union128 (res1, res_ref))
34    abort ();
35}
36