sepavloff marked 2 inline comments as done.
sepavloff added inline comments.
================
Comment at: clang/test/CodeGen/isfpclass.c:2
+// RUN: %clang_cc1 -triple x86_64-linux-gnu -S -O1 -emit-llvm %s -o - |
FileCheck %s
+
+_Bool check_isfpclass_finite(float x) {
----------------
arsenm wrote:
> sepavloff wrote:
> > arsenm wrote:
> > > Can you also add a half test, also vectors
> > Half is added. But vectors cannot, because in this case result is also a
> > vector.
> Could copy what __builtin_elementwise does. Should that be in this builtin,
> or should there be a separate __builtin_elementwise_isfpclass?
Other math functions have separate elementwise functions. It looks natural to
have separate elementwise function for this function as well.
================
Comment at: clang/test/Sema/builtins.c:384
+ int x1 = __builtin_isfpclass(x, 1024); // expected-error {{argument value
1024 is outside the valid range [0, 1023]}}
+ int x2 = __builtin_isfpclass(3, 3); // expected-error{{floating point
classification requires argument of floating point type (passed in 'int')}}
+ int x3 = __builtin_isfpclass(x, 3, x); // expected-error{{too many arguments
to function call, expected 2, have 3}}
----------------
arsenm wrote:
> For any other float argument, 3 would accept implicit conversion. Do we just
> not do that for these type inferring intrinsics?
As any other classification function, this one is evaluated with semantic type.
The test `CodeGen/isfpclass.c` demonstrates that type promotion is absent for
_Float16.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D152351/new/
https://reviews.llvm.org/D152351
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits