scanon added inline comments.

================
Comment at: clang/docs/LanguageExtensions.rst:538
+ T __builtin_elementwise_rint(T x)      return the integral value nearest to x 
(according to the          floating point types
+                                        prevailing rounding mode) in 
floating-point format
+ T __builtin_elementwise_round(T x)     return the integral value nearest to x 
rounding half-way cases    floating point types
----------------
"Prevailing rounding mode" is not super-useful, other than as a spelling for 
round-to-nearest-ties-to-even (IEEE 754 default rounding). Outside of a 
`FENV_ACCESS ON` context, there's not even really a notion of "prevailing 
rounding mode" to appeal to. I assume the intent is for this to lower to e.g. 
x86 ROUND* with the dynamic rounding-mode immediate.

I would recommend adding `__builtin_elementwise_roundeven(T x)` instead, which 
would statically bind IEEE default rounding (following TS 18661-1 naming) 
without having to appeal to prevailing rounding mode, and can still lower to 
ROUND* on x86 outside of FENV_ACCESS ON contexts, which is the norm for vector 
code  (and FRINTN unconditionally on armv8). I think we can punt on 
rint/nearbyint for now, and add them in the future if there's a need.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111529/new/

https://reviews.llvm.org/D111529

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to