1 /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
2 /* { dg-options "-msse4" } */
6 foo (char *p1
, char *p2
,
7 int bmsk
, __m128i mask1
, __m128i mask2
)
12 if( !p2
[0]) return p1
;
13 if( !p1
[0] ) return NULL
;
16 frag2
= _mm_blendv_epi8(frag2
, mask2
, mask1
);
17 frag1
= _mm_blendv_epi8(frag1
, mask1
, mask2
);
18 cmp_s
= _mm_cmpistrs(frag2
, frag1
, 0x0c);
20 __asm("bsfl %[bmsk], %[len]" : [len
] "=r" (len
) : [bmsk
] "r" (bmsk
) );