2 /* { dg-require-effective-target p8vector_hw } */
3 /* { dg-options "-O2 -mvsx -Wno-psabi" } */
4 /* { dg-additional-options "-mdejagnu-cpu=power8" { target { ! has_arch_pwr8 } } } */
6 #define NO_WARN_X86_INTRINSICS 1
12 #define ROUND_INTRIN(x, y) _mm_floor_ss (x, y)
14 #include "sse4_1-round-data.h"
16 static struct data2 data
[] = {
17 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
18 .value2
= { .f
= { 0.00, IGNORED
, IGNORED
, IGNORED
} },
19 .answer
= { 0.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
20 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
21 .value2
= { .f
= { 0.25, IGNORED
, IGNORED
, IGNORED
} },
22 .answer
= { 0.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
23 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
24 .value2
= { .f
= { 0.50, IGNORED
, IGNORED
, IGNORED
} },
25 .answer
= { 0.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
26 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
27 .value2
= { .f
= { 0.75, IGNORED
, IGNORED
, IGNORED
} },
28 .answer
= { 0.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
30 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
31 .value2
= { .f
= { 0x1.fffff8p
+21, IGNORED
, IGNORED
, IGNORED
} },
32 .answer
= { 0x1.fffff8p
+21, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
33 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
34 .value2
= { .f
= { 0x1.fffffap
+21, IGNORED
, IGNORED
, IGNORED
} },
35 .answer
= { 0x1.fffff8p
+21, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
36 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
37 .value2
= { .f
= { 0x1.fffffcp
+21, IGNORED
, IGNORED
, IGNORED
} },
38 .answer
= { 0x1.fffff8p
+21, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
39 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
40 .value2
= { .f
= { 0x1.fffffep
+21, IGNORED
, IGNORED
, IGNORED
} },
41 .answer
= { 0x1.fffff8p
+21, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
43 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
44 .value2
= { .f
= { 0x1.fffffap
+22, IGNORED
, IGNORED
, IGNORED
} },
45 .answer
= { 0x1.fffff8p
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
46 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
47 .value2
= { .f
= { 0x1.fffffcp
+22, IGNORED
, IGNORED
, IGNORED
} },
48 .answer
= { 0x1.fffffcp
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
49 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
50 .value2
= { .f
= { 0x1.fffffep
+22, IGNORED
, IGNORED
, IGNORED
} },
51 .answer
= { 0x1.fffffcp
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
52 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
53 .value2
= { .f
= { 0x1.fffffep
+23, IGNORED
, IGNORED
, IGNORED
} },
54 .answer
= { 0x1.fffffep
+23, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
56 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
57 .value2
= { .f
= { -0x1.fffffep
+23, IGNORED
, IGNORED
, IGNORED
} },
58 .answer
= { -0x1.fffffep
+23, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
59 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
60 .value2
= { .f
= { -0x1.fffffep
+22, IGNORED
, IGNORED
, IGNORED
} },
61 .answer
= { -0x1.000000p
+23, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
62 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
63 .value2
= { .f
= { -0x1.fffffcp
+22, IGNORED
, IGNORED
, IGNORED
} },
64 .answer
= { -0x1.fffffcp
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
65 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
66 .value2
= { .f
= { -0x1.fffffap
+22, IGNORED
, IGNORED
, IGNORED
} },
67 .answer
= { -0x1.fffffcp
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
69 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
70 .value2
= { .f
= { -0x1.fffffep
+21, IGNORED
, IGNORED
, IGNORED
} },
71 .answer
= { -0x1.000000p
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
72 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
73 .value2
= { .f
= { -0x1.fffffcp
+21, IGNORED
, IGNORED
, IGNORED
} },
74 .answer
= { -0x1.000000p
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
75 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
76 .value2
= { .f
= { -0x1.fffffap
+21, IGNORED
, IGNORED
, IGNORED
} },
77 .answer
= { -0x1.000000p
+22, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
78 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
79 .value2
= { .f
= { -0x1.fffff8p
+21, IGNORED
, IGNORED
, IGNORED
} },
80 .answer
= { -0x1.fffff8p
+21, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
82 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
83 .value2
= { .f
= { -1.00, IGNORED
, IGNORED
, IGNORED
} },
84 .answer
= { -1.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
85 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
86 .value2
= { .f
= { -0.75, IGNORED
, IGNORED
, IGNORED
} },
87 .answer
= { -1.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
88 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
89 .value2
= { .f
= { -0.50, IGNORED
, IGNORED
, IGNORED
} },
90 .answer
= { -1.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
91 { .value1
= { .f
= { IGNORED
, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} },
92 .value2
= { .f
= { -0.25, IGNORED
, IGNORED
, IGNORED
} },
93 .answer
= { -1.0, PASSTHROUGH
, PASSTHROUGH
, PASSTHROUGH
} }
96 #include "sse4_1-round2.h"