https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114153
--- Comment #1 from Marc Mutz <marc.mutz at hotmail dot com> --- It's only the C++14 "diamond"/is_transparent version of std::less/greater_equal that is affected. If you replace the return from main with greater_equal<S>{}, then it calls op<=>, too: // https://godbolt.org/z/cnjssh3ss return std::greater_equal<S>{}(arr[0], arr[1]) ? 0 : 1; // ^ added