1 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
5 #include "sse4_1-check.h"
51 } val1
[16], val2
[16], res
[16], chk
[16];
55 for (i
= 0; i
< 16; i
++)
65 val2
[i
].f
[3] = 10000.;
68 for (j
= 0; j
< 4; j
++)
69 if ((HIMASK
& (0x10 << j
)))
70 tmp
+= val1
[i
].f
[j
] * val2
[i
].f
[j
];
72 for (j
= 0; j
< 4; j
++)
73 if ((LOMASK
& (1 << j
)))
77 for (i
= 0; i
< 16; i
++)
79 res
[i
].x
= _mm_dp_ps (val1
[i
].x
, val2
[i
].x
, HIMASK
| LOMASK
);
80 if (memcmp (&res
[i
], &chk
[i
], sizeof (chk
[i
])))