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

--- Comment #7 from Matthias Kretz <kretz at kde dot org> ---
Hmm,

what should the following print?

constexpr int native_simd_width = __builtin_target_supports("avx512f") ? 64 :
__builtin_target_supports("avx") ? 32 : __builtin_target_supports("sse") ? 16 :
__builtin_target_supports("mmx") ? 8 : 0;

constexpr int native_simd_width_f() {
    return __builtin_target_supports("avx512f") ? 64 :
__builtin_target_supports("avx") ? 32 : __builtin_target_supports("sse") ? 16 :
__builtin_target_supports("mmx") ? 8 : 0;
}

[[gnu::target_clones("default,avx,avx512f")]]
void f() {
    std::cout << native_simd_width << ' ' << native_simd_width_f();
}

Reply via email to