OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / pr32000-1.c
1 /* { dg-do run } */
2 /* { dg-require-effective-target dfp } */
3 /* { dg-options "-O -msse2 -std=gnu99" } */
4
5 #include "sse2-check.h"
6
7 typedef struct { _Decimal128 f __attribute__((packed)); } packed;
8
9 _Decimal128 __attribute__((noinline))
10 foo (_Decimal128 a1, _Decimal128 a2, _Decimal128 a3, _Decimal128 a4,
11      _Decimal128 a5, _Decimal128 a6, _Decimal128 a7, _Decimal128 a8,
12      int b1, int b2, int b3, int b4, int b5, int b6, int b7, packed y)
13 {
14   return y.f;
15 }
16
17 void
18 sse2_test (void)
19 {
20   packed x;
21   _Decimal128 y = -1;
22   x.f = y;
23   y = foo (0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, -1, x);
24   if (__builtin_memcmp (&y, &x.f, sizeof (y)))
25     abort ();
26 }