aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorYunQiang Su <syq@debian.org>2025-04-14 13:49:32 +0800
committerGitHub <noreply@github.com>2025-04-14 13:49:32 +0800
commit58b5df09dc6f899016fc707bf937b36b36934b6d (patch)
tree069b14e14519e6175ee4138bfee4465d8acc3209 /clang/lib/Sema/SemaChecking.cpp
parenta3f8359410eb7e14c4a52b47f36e433af40c05e9 (diff)
downloadllvm-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.cpp2
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: