https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100929

--- Comment #5 from Denis Yaroshevskiy <denis.yaroshevskij at gmail dot com> ---
x86  (https://godbolt.org/z/zPWbnqfPY)

Options: -O3 -mavx2
```
#include <immintrin.h>

__m256 if_else_float(__m256 x, __m256 y) {
  __m256 mask = _mm256_cmp_ps(y, x, _CMP_LT_OQ);
  return _mm256_blendv_ps(x, y, mask);
}

__m256 min_float(__m256 x, __m256 y) {
  return _mm256_min_ps(x, y);
}

__m256i if_else_int(__m256i x, __m256i y) {
  __m256i mask = _mm256_cmpgt_epi32(x, y);
  return _mm256_blendv_epi8(x, y, mask);
}

__m256i min_int(__m256i x, __m256i y) {
  return _mm256_min_epi32(x, y);
}
```

Reply via email to