================
@@ -16049,6 +16094,84 @@ of the two arguments. -0.0 is considered to be less 
than +0.0 for this
 intrinsic. Note that these are the semantics specified in the draft of
 IEEE 754-2019.
 
+.. _i_minimumnum:
+
+'``llvm.minimumnum.*``' Intrinsic
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Syntax:
+"""""""
+
+This is an overloaded intrinsic. You can use ``llvm.minimumnum`` on any
+floating-point or vector of floating-point type. Not all targets support
+all types however.
+
+::
+
+      declare float     @llvm.minimumnum.f32(float %Val0, float %Val1)
+      declare double    @llvm.minimumnum.f64(double %Val0, double %Val1)
+      declare x86_fp80  @llvm.minimumnum.f80(x86_fp80 %Val0, x86_fp80 %Val1)
+      declare fp128     @llvm.minimumnum.f128(fp128 %Val0, fp128 %Val1)
+      declare ppc_fp128 @llvm.minimumnum.ppcf128(ppc_fp128 %Val0, ppc_fp128 
%Val1)
+
+Overview:
+"""""""""
+
+The '``llvm.minimumnum.*``' intrinsics return the minimum of the two
+arguments, not propagating NaNs and treating -0.0 as less than +0.0.
+
+
+Arguments:
+""""""""""
+
+The arguments and return value are floating-point numbers of the same
+type.
+
+Semantics:
+""""""""""
+If both operands are NaNs, returns qNaN. Otherwise returns the lesser
+of the two arguments. -0.0 is considered to be less than +0.0 for this
+intrinsic. Note that these are the semantics specified in IEEE 754-2019.
----------------
wzssyqa wrote:

> Needs to spell out the signaling nan behavior. If we're fixing minnum's snan 
> behavior to match IEEE, this is identical except with the stronger guarantee 
> for signed zero ordering. The documentation should also explicitly state this 
> is the only difference, to help reduce confusion. Alternatively, we could add 
> an immediate bool parameter to minnum/maxnum for whether the ordering of 0 is 
> guaranteed
> 

OK. I will add more details here.

> I hate the naming mess we've ended up with here, but I guess C23 has damned 
> us. If you're going to match the C23 names, this should be `llvm.minimum.num` 
> with an extra _

In fact, in my initial version of patch, I use _, then I get 
`llvm.minimum.num`. I considered it as a problem, since it cost some time to 
know in fact I should use `llvm.minimum.num` instead of `llvm.minimum_num` :(

https://github.com/llvm/llvm-project/pull/93841
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to