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

Matthias Kretz <kretz at kde dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kretz at kde dot org

--- Comment #6 from Matthias Kretz <kretz at kde dot org> ---
Here's an example I'd like to see supported. Note the missing target_clones
attribute on "min":

inline __m128i min(__m128i a, __m128i b) {
    if constexpr (__builtin_target_supports("sse4.1")) {
        return _mm_min_epi32(a, b);
    } else {
        const auto mask = _mm_cmpgt_epi32(a, b);
        return _mm_or_si128(_mm_andnot_si128(mask, a), _mm_and_si128(mask, b));
    }
}

[[gnu::target_clones("default,sse4.1")]]
__m128i f(__m128i a, __m128i b) {
    return min(a, b);
}

Reply via email to