2 /* { dg-require-effective-target sse4 } */
3 /* { dg-options "-O2 -msse4.1" } */
5 #include "sse4_1-check.h"
13 init_blendvps (float *src1
, float *src2
, float *mask
)
18 for (i
= 0; i
< NUM
* 4; 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
% 4))))
32 check_blendvps (__m128
*dst
, float *src1
, float *src2
,
38 memcpy (&tmp
[0], src1
, sizeof (tmp
));
39 for (j
= 0; j
< 4; j
++)
43 return memcmp (dst
, &tmp
[0], sizeof (tmp
));
53 } dst
, src1
, src2
, mask
;
56 init_blendvps (src1
.f
, src2
.f
, mask
.f
);
58 for (i
= 0; i
< NUM
; i
++)
60 dst
.x
[i
] = _mm_blendv_ps (src1
.x
[i
], src2
.x
[i
], mask
.x
[i
]);
61 if (check_blendvps (&dst
.x
[i
], &src1
.f
[i
* 4], &src2
.f
[i
* 4],