/* PR target/98461 */ /* { dg-do compile } */ /* { dg-options "-O2 -msse2 -mno-sse3 -masm=att" } */ /* { dg-final { scan-assembler-times "\tpmovmskb\t" 3 } } */ /* { dg-final { scan-assembler-not "\tmovzwl" } } */ /* { dg-final { scan-assembler-times "\tnotl" 1 } } * /* { dg-final { scan-assembler-times "\txorl" 1 } } */ #include unsigned int movemask_not1(__m128i logical) { unsigned short res = (unsigned short)(_mm_movemask_epi8(logical)); return ~res; } unsigned int movemask_not2(__m128i logical) { unsigned short res = (unsigned short)(_mm_movemask_epi8(logical)); res = ~res; return res; } unsigned int movemask_zero_extend(__m128i logical) { unsigned int res = _mm_movemask_epi8(logical); return res & 0xffff; }