llvm-project/clang/test/Sema/builtin_set_flt_rounds.c
jinge90 b38aa29717 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, aaron.ballman
Differential Revision: https://reviews.llvm.org/D145765
Signed-off-by: jinge90 <ge.jin@intel.com>
2023-03-15 11:13:55 +08:00

9 lines
437 B
C

// RUN: %clang_cc1 -triple mipsel-unknown-linux -fsyntax-only %s -verify=expected,unsupported
// RUN: %clang_cc1 -triple x86_64-gnu-linux -fsyntax-only %s -verify
struct S {int a;};
void test_builtin_set_flt_rounds() {
__builtin_set_flt_rounds(1); // unsupported-error {{builtin is not supported on this target}}
struct S s;
__builtin_set_flt_rounds(s); // expected-error {{passing 'struct S' to parameter of incompatible type}}
}