[X86] Enable constexpr on _cast fp<-> uint intrinsics (PR31446)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 23 Aug 2020 09:27:46 +0000 (10:27 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 23 Aug 2020 09:27:46 +0000 (10:27 +0100)
commitf8e0e5db48601cb0d019405703ccaa2378f503e0
tree6139bc00edf716c22d884277598dccd52b4540ce
parent50927f3191f908142201ccc50962537bf9d96bda
[X86] Enable constexpr on _cast fp<-> uint intrinsics (PR31446)

As suggested by @rsmith on PR47267, by replacing the builtin_memcpy bitcast pattern with builtin_bit_cast we can use _castf32_u32, _castu32_f32, _castf64_u64 and _castu64_f64 inside constant expresssions (constexpr). Although __builtin_bit_cast was added for c++20 it works on all clang c/c++ modes.

Differential Revision: https://reviews.llvm.org/D86398
clang/docs/ReleaseNotes.rst
clang/lib/Headers/ia32intrin.h
clang/test/CodeGen/x86-builtins.c