Add documentation for musttail attribute
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / sse4_1-floorss.c
blobd9b892820d8b03cc28021df115ed5f870d784680
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 __m128
10 #define FP_T float
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"