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, mode) _mm_floor_ps (x)
14 #include "sse4_1-round-data.h"
16 static struct data data
[] = {
17 { { .f
= { 0.00, 0.25, 0.50, 0.75 } }, { 0.0, 0.0, 0.0, 0.0 } },
19 { { .f
= { 0x1.fffff8p
+21, 0x1.fffffap
+21,
20 0x1.fffffcp
+21, 0x1.fffffep
+21 } },
21 { 0x1.fffff8p
+21, 0x1.fffff8p
+21,
22 0x1.fffff8p
+21, 0x1.fffff8p
+21 } },
24 { { .f
= { 0x1.fffffap
+22, 0x1.fffffcp
+22,
25 0x1.fffffep
+22, 0x1.fffffep
+23 } },
26 { 0x1.fffff8p
+22, 0x1.fffffcp
+22,
27 0x1.fffffcp
+22, 0x1.fffffep
+23 } },
29 { { .f
= { -0x1.fffffep
+23, -0x1.fffffep
+22,
30 -0x1.fffffcp
+22, -0x1.fffffap
+22 } },
31 { -0x1.fffffep
+23, -0x1.000000p
+23,
32 -0x1.fffffcp
+22, -0x1.fffffcp
+22 } },
34 { { .f
= { -0x1.fffffep
+21, -0x1.fffffcp
+21,
35 -0x1.fffffap
+21, -0x1.fffff8p
+21 } },
36 { -0x1.000000p
+22, -0x1.000000p
+22,
37 -0x1.000000p
+22, -0x1.fffff8p
+21 } },
39 { { .f
= { -1.00, -0.75, -0.50, -0.25 } }, { -1.0, -1.0, -1.0, -1.0 } }
42 #include "sse4_1-round.h"