[Libclc-dev] [PATCH 2/2] r600/fmin: Flush denormals before calling builtin.

Jan Vesely via Libclc-dev libclc-dev at lists.llvm.org
Wed Jun 6 18:25:43 PDT 2018


On Tue, 2018-05-29 at 16:10 -0400, Jan Vesely wrote:
> On Mon, 2018-05-21 at 11:36 -0400, Jan Vesely wrote:
> > Same reason as amdgcn.
> > Fixes fmin, minmag CTS on turks.
> > Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> > ---
> >  r600/lib/SOURCES      |  1 +
> >  r600/lib/math/fmin.cl | 30 ++++++++++++++++++++++++++++++
> >  2 files changed, 31 insertions(+)
> >  create mode 100644 r600/lib/math/fmin.cl
> > 
> > diff --git a/r600/lib/SOURCES b/r600/lib/SOURCES
> > index 132b151..e69be4a 100644
> > --- a/r600/lib/SOURCES
> > +++ b/r600/lib/SOURCES
> > @@ -1,4 +1,5 @@
> >  math/fmax.cl
> > +math/fmin.cl
> >  synchronization/barrier_impl.ll
> >  workitem/get_global_offset.cl
> >  workitem/get_group_id.cl
> > diff --git a/r600/lib/math/fmin.cl b/r600/lib/math/fmin.cl
> > new file mode 100644
> > index 0000000..09f1e4c
> > --- /dev/null
> > +++ b/r600/lib/math/fmin.cl
> > @@ -0,0 +1,30 @@
> > +#include <clc/clc.h>
> > +
> > +#include "../../../generic/lib/clcmacro.h"
> > +#include "../../../generic/lib/math/math.h"
> > +
> > +_CLC_DEF _CLC_OVERLOAD float fmin(float x, float y)
> > +{
> > +   /* fcanonicalize removes sNaNs and flushes denormals if not enabled.
> > +    * Otherwise fmin instruction flushes the values for comparison,
> > +    * but outputs original denormal */
> > +   x = __clc_flush_denormal_if_not_supported(x);
> > +   y = __clc_flush_denormal_if_not_supported(y);
> > +   return __builtin_fminf(x, y);
> > +}
> > +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmin, float, float)
> > +
> > +#ifdef cl_khr_fp64
> > +
> > +#pragma OPENCL EXTENSION cl_khr_fp64 : enable
> > +
> > +_CLC_DEF _CLC_OVERLOAD double fmin(double x, double y)
> > +{
> > +   return __builtin_fmin(x, y);
> > +}
> > +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmin, double, double)
> > +
> > +#endif
> > +
> > +#define __CLC_BODY <../../../generic/lib/math/fmin.inc>
> > +#include <clc/math/gentype.inc>
> 
> ping.

ping2.

Jan

> 
> Jan

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20180606/2b0cfe8c/attachment.sig>


More information about the Libclc-dev mailing list