Add __builtin_set_flt_rounds
authorjinge90 <ge.jin@intel.com>
Thu, 9 Mar 2023 03:48:51 +0000 (11:48 +0800)
committerjinge90 <ge.jin@intel.com>
Thu, 9 Mar 2023 03:52:52 +0000 (11:52 +0800)
commit24b823554acd25009731b2519880aa18c7263550
treef7bedf35285852da25583a129858bdfdb739b7c8
parent02bc7429d56f453087d0dd5f173b6b7c83fe3f58
Add __builtin_set_flt_rounds

This builtin will be converted to llvm.set.rounding intrinsic
in IR level and should be work with "#pragma STDC FENV_ACCESS ON"
since it changes default FP environment. Users can change rounding
mode via this builtin without introducing libc dependency.

Reviewed by: andrew.w.kaylor, rjmccall, sepavloff
Differential Revision: https://reviews.llvm.org/D144454
Signed-off-by: jinge90 <ge.jin@intel.com>
clang/include/clang/Basic/Builtins.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/lib/Sema/SemaChecking.cpp
clang/test/CodeGen/builtins.c