/* { dg-do compile } */ /* { dg-options "-mavx2 -O2 -mno-avx512f" } */ /* { dg-final { scan-assembler-not {pblendv} } } */ /* { dg-final { scan-assembler-not {blendvp} } } */ #include __m128 foo (__m128 a, __m128 b) { return _mm_blendv_ps (a, b, _mm_setzero_ps ()); } __m256 foo2 (__m256 a, __m256 b) { return _mm256_blendv_ps (a, b, _mm256_set1_ps (-1.0)); } __m128d foo3 (__m128d a, __m128d b, __m128d c) { return _mm_blendv_pd (a, b, _mm_set1_pd (1.0)); } __m256d foo4 (__m256d a, __m256d b, __m256d c) { return _mm256_blendv_pd (a, b, _mm256_set1_pd (-134.3)); } __m128i foo5 (__m128i a, __m128i b, __m128i c) { return _mm_blendv_epi8 (a, b, _mm_set1_epi8 (3)); } __m256i foo6 (__m256i a, __m256i b, __m256i c) { return _mm256_blendv_epi8 (a, b, _mm256_set1_epi8 (-22)); }