(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
sse2-pr98461-2.c
       1  /* PR target/98461 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -msse2 -mno-sse3 -masm=att" } */
       4  /* { dg-final { scan-assembler-times "\tpmovmskb\t" 3 } } */
       5  /* { dg-final { scan-assembler-not "\tmovzwl" } } */
       6  /* { dg-final { scan-assembler-times "\tnotl" 1 } } *
       7  /* { dg-final { scan-assembler-times "\txorl" 1 } } */
       8  
       9  #include <immintrin.h>
      10  
      11  unsigned int movemask_not1(__m128i logical) {
      12    unsigned short res = (unsigned short)(_mm_movemask_epi8(logical));
      13    return ~res;
      14  }
      15  
      16  unsigned int movemask_not2(__m128i logical) {
      17    unsigned short res = (unsigned short)(_mm_movemask_epi8(logical));
      18    res = ~res;
      19    return res;
      20  }
      21  
      22  unsigned int movemask_zero_extend(__m128i logical) {
      23    unsigned int res = _mm_movemask_epi8(logical);
      24    return res & 0xffff;
      25  }