diff options
author | YunQiang Su <syq@debian.org> | 2025-04-14 13:49:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-14 13:49:32 +0800 |
commit | 58b5df09dc6f899016fc707bf937b36b36934b6d (patch) | |
tree | 069b14e14519e6175ee4138bfee4465d8acc3209 /clang/lib/Sema/SemaChecking.cpp | |
parent | a3f8359410eb7e14c4a52b47f36e433af40c05e9 (diff) | |
download | llvm-58b5df09dc6f899016fc707bf937b36b36934b6d.zip llvm-58b5df09dc6f899016fc707bf937b36b36934b6d.tar.gz llvm-58b5df09dc6f899016fc707bf937b36b36934b6d.tar.bz2 |
Clang: Add elementwise minnum/maxnum builtin functions (#129207)
With https://github.com/llvm/llvm-project/pull/112852, we claimed that
llvm.minnum and llvm.maxnum should treat +0.0>-0.0, while libc doesn't
require fmin(3)/fmax(3) for it.
To make llvm.minnum/llvm.maxnum easy to use, we define the builtin
functions for them, include
__builtin_elementwise_minnum
__builtin_elementwise_maxnum
All of them support _Float16, __bf16, float, double, long double.
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index bffd0dd..13bc2bd 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -2762,6 +2762,8 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID, // These builtins restrict the element type to floating point // types only, and take in two arguments. + case Builtin::BI__builtin_elementwise_minnum: + case Builtin::BI__builtin_elementwise_maxnum: case Builtin::BI__builtin_elementwise_minimum: case Builtin::BI__builtin_elementwise_maximum: case Builtin::BI__builtin_elementwise_atan2: |