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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to