2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
5 #include "sse4_1-check.h"
13 init_blendvpd (double *src1
, double *src2
, double *mask
)
18 for (i
= 0; i
< NUM
* 2; i
++)
22 src1
[i
] = i
* (i
+ 1) * sign
;
23 src2
[i
] = (i
+ 20) * sign
;
24 mask
[i
] = (i
+ 120) * i
;
25 if( (msk
& (1 << (i
% 2))))
32 check_blendvpd (__m128d
*dst
, double *src1
, double *src2
,
38 memcpy (&tmp
[0], src1
, sizeof (tmp
));
39 for (j
= 0; j
< 2; j
++)
43 return memcmp (dst
, &tmp
[0], sizeof (tmp
));
53 } dst
, src1
, src2
, mask
;
56 init_blendvpd (src1
.d
, src2
.d
, mask
.d
);
58 for (i
= 0; i
< NUM
; i
++)
60 dst
.x
[i
] = _mm_blendv_pd (src1
.x
[i
], src2
.x
[i
], mask
.x
[i
]);
61 if (check_blendvpd (&dst
.x
[i
], &src1
.d
[i
* 2], &src2
.d
[i
* 2],