aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr102464.c
blob: 7e1fbdccf02aa60edbb3353739fd262a26c7169b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* PR target/102464.  */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512fp16 -fno-trapping-math" } */

#define FOO(FUNC,SUFFIX)                       \
  _Float16                                     \
  foo_##FUNC##_##SUFFIX (_Float16 a)           \
  {                                            \
    return __builtin_##FUNC##SUFFIX (a);       \
  }

FOO (roundeven, f16);
FOO (roundeven, f);
FOO (roundeven, );
FOO (roundeven, l);
FOO (trunc, f16);
FOO (trunc, f);
FOO (trunc, );
FOO (trunc, l);
FOO (ceil, f16);
FOO (ceil, f);
FOO (ceil, );
FOO (ceil, l);
FOO (floor, f16);
FOO (floor, f);
FOO (floor, );
FOO (floor, l);
FOO (nearbyint, f16);
FOO (nearbyint, f);
FOO (nearbyint, );
FOO (nearbyint, l);
FOO (rint, f16);
FOO (rint, f);
FOO (rint, );
FOO (rint, l);

/* { dg-final { scan-assembler-not "vcvtsh2s\[sd\]" } } */
/* { dg-final { scan-assembler-not "extendhfxf" } } */
/* { dg-final { scan-assembler-times "vrndscalesh\[^\n\r\]*xmm\[0-9\]" 24 } } */