2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
6 #define CHECK_H "sse4_1-check.h"
10 #define TEST sse4_1_test
15 #include <smmintrin.h>
45 } val1
[4], val2
[4], res
[4], chk
[4];
49 for (i
= 0; i
< 4; i
++)
58 for (j
= 0; j
< 2; j
++)
59 if ((HIMASK
& (0x10 << j
)))
60 tmp
+= val1
[i
].d
[j
] * val2
[i
].d
[j
];
62 for (j
= 0; j
< 2; j
++)
63 if ((LOMASK
& (1 << j
)))
67 for (i
= 0; i
< 4; i
++)
69 res
[i
].x
= _mm_dp_pd (val1
[i
].x
, val2
[i
].x
, HIMASK
| LOMASK
);
70 if (memcmp (&res
[i
], &chk
[i
], sizeof (chk
[i
])))