[testsuite] require sqrt_insn effective target where needed
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / sse4_1-floorsd.c
blob8051c0d5d9f46be1c8a3ee6f11ad26f0a8ef9177
1 /* { dg-do run } */
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
7 #include <smmintrin.h>
9 #define VEC_T __m128d
10 #define FP_T double
12 #define ROUND_INTRIN(x, y) _mm_floor_sd (x, y)
14 #include "sse4_1-round-data.h"
16 static struct data2 data[] = {
17 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
18 .value2 = { .f = { 0.00, IGNORED } },
19 .answer = { 0.0, PASSTHROUGH } },
20 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
21 .value2 = { .f = { 0.25, IGNORED } },
22 .answer = { 0.0, PASSTHROUGH } },
23 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
24 .value2 = { .f = { 0.50, IGNORED } },
25 .answer = { 0.0, PASSTHROUGH } },
26 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
27 .value2 = { .f = { 0.75, IGNORED } },
28 .answer = { 0.0, PASSTHROUGH } },
30 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
31 .value2 = { .f = { 0x1.ffffffffffffcp+50, IGNORED } },
32 .answer = { 0x1.ffffffffffffcp+50, PASSTHROUGH } },
33 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
34 .value2 = { .f = { 0x1.ffffffffffffdp+50, IGNORED } },
35 .answer = { 0x1.ffffffffffffcp+50, PASSTHROUGH } },
36 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
37 .value2 = { .f = { 0x1.ffffffffffffep+50, IGNORED } },
38 .answer = { 0x1.ffffffffffffcp+50, PASSTHROUGH } },
39 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
40 .value2 = { .f = { 0x1.fffffffffffffp+50, IGNORED } },
41 .answer = { 0x1.ffffffffffffcp+50, PASSTHROUGH } },
42 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
43 .value2 = { .f = { 0x1.0000000000000p+51, IGNORED } },
44 .answer = { 0x1.0000000000000p+51, PASSTHROUGH } },
45 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
46 .value2 = { .f = { 0x1.0000000000001p+51, IGNORED } },
47 .answer = { 0x1.0000000000000p+51, PASSTHROUGH } },
48 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
49 .value2 = { .f = { 0x1.0000000000002p+51, IGNORED } },
50 .answer = { 0x1.0000000000002p+51, PASSTHROUGH } },
51 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
52 .value2 = { .f = { 0x1.0000000000003p+51, IGNORED } },
53 .answer = { 0x1.0000000000002p+51, PASSTHROUGH } },
55 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
56 .value2 = { .f = { 0x1.ffffffffffffep+51, IGNORED } },
57 .answer = { 0x1.ffffffffffffep+51, PASSTHROUGH } },
58 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
59 .value2 = { .f = { 0x1.fffffffffffffp+51, IGNORED } },
60 .answer = { 0x1.ffffffffffffep+51, PASSTHROUGH } },
61 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
62 .value2 = { .f = { 0x1.0000000000000p+52, IGNORED } },
63 .answer = { 0x1.0000000000000p+52, PASSTHROUGH } },
64 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
65 .value2 = { .f = { 0x1.0000000000001p+52, IGNORED } },
66 .answer = { 0x1.0000000000001p+52, PASSTHROUGH } },
68 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
69 .value2 = { .f = { -0x1.0000000000001p+52, IGNORED } },
70 .answer = { -0x1.0000000000001p+52, PASSTHROUGH } },
71 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
72 .value2 = { .f = { -0x1.0000000000000p+52, IGNORED } },
73 .answer = { -0x1.0000000000000p+52, PASSTHROUGH } },
74 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
75 .value2 = { .f = { -0x1.fffffffffffffp+51, IGNORED } },
76 .answer = { -0x1.0000000000000p+52, PASSTHROUGH } },
77 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
78 .value2 = { .f = { -0x1.ffffffffffffep+51, IGNORED } },
79 .answer = { -0x1.ffffffffffffep+51, PASSTHROUGH } },
81 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
82 .value2 = { .f = { -0x1.0000000000003p+51, IGNORED } },
83 .answer = { -0x1.0000000000004p+51, PASSTHROUGH } },
84 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
85 .value2 = { .f = { -0x1.0000000000002p+51, IGNORED } },
86 .answer = { -0x1.0000000000002p+51, PASSTHROUGH } },
87 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
88 .value2 = { .f = { -0x1.0000000000001p+51, IGNORED } },
89 .answer = { -0x1.0000000000002p+51, PASSTHROUGH } },
90 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
91 .value2 = { .f = { -0x1.0000000000000p+51, IGNORED } },
92 .answer = { -0x1.0000000000000p+51, PASSTHROUGH } },
93 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
94 .value2 = { .f = { -0x1.ffffffffffffcp+50, IGNORED } },
95 .answer = { -0x1.ffffffffffffcp+50, PASSTHROUGH } },
96 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
97 .value2 = { .f = { -0x1.ffffffffffffep+50, IGNORED } },
98 .answer = { -0x1.0000000000000p+51, PASSTHROUGH } },
99 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
100 .value2 = { .f = { -0x1.ffffffffffffdp+50, IGNORED } },
101 .answer = { -0x1.0000000000000p+51, PASSTHROUGH } },
102 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
103 .value2 = { .f = { -0x1.ffffffffffffcp+50, IGNORED } },
104 .answer = { -0x1.ffffffffffffcp+50, PASSTHROUGH } },
106 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
107 .value2 = { .f = { -1.00, IGNORED } },
108 .answer = { -1.0, PASSTHROUGH } },
109 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
110 .value2 = { .f = { -0.75, IGNORED } },
111 .answer = { -1.0, PASSTHROUGH } },
112 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
113 .value2 = { .f = { -0.50, IGNORED } },
114 .answer = { -1.0, PASSTHROUGH } },
115 { .value1 = { .f = { IGNORED, PASSTHROUGH } },
116 .value2 = { .f = { -0.25, IGNORED } },
117 .answer = { -1.0, PASSTHROUGH } }
120 #include "sse4_1-round2.h"