public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH], Update __FLOAT128_HARDWARE__ on power9
@ 2017-10-20 21:06 Michael Meissner
  2017-10-25 23:57 ` Segher Boessenkool
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Meissner @ 2017-10-20 21:06 UTC (permalink / raw)
  To: GCC Patches, Segher Boessenkool, David Edelsohn, Bill Schmidt

This is a simple patch to add a way that the GLIBC team call tell that certain
__float128 built-in functions are available.  While previous patches of mine
set __FAST_FP_FMAF128, which could be used for this purpose, this macro just
bumps __FLOAT128_HARDWARE__ to say that the built-in functions are available in
addition to supporting the basic IEEE 128-bit floating point instructions.

I did a full bootstrap and c/c++/fortran check and there were no regressions on
a little endian Power8 system.  I verified that the updated test
(float128-hw.c) did run.  Can I check this into the trunk?

[gcc]
2017-10-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__FLOAT128_HARDWARE__ to be 2 if float128 built-in functions are
	available.
	* extend.texi (PowerPC Built-in Functions): Document setting
	__FLOAT128_HARDWARE__ to 2.

[gcc/testsuite]
2017-10-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-hw.c: Update test to include all 4
	FMA variants.  Add check that __float128 to float conversions use
	round to odd to convert it to DFmode before converting to SFmode.
	Add check for __FLOAT128_HARDWARE__ being at least 2.  Reformat
	code.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH], Update __FLOAT128_HARDWARE__ on power9
  2017-10-20 21:06 [PATCH], Update __FLOAT128_HARDWARE__ on power9 Michael Meissner
@ 2017-10-25 23:57 ` Segher Boessenkool
  2017-10-26  0:11   ` Michael Meissner
  0 siblings, 1 reply; 3+ messages in thread
From: Segher Boessenkool @ 2017-10-25 23:57 UTC (permalink / raw)
  To: Michael Meissner, GCC Patches, David Edelsohn, Bill Schmidt

On Fri, Oct 20, 2017 at 04:56:41PM -0400, Michael Meissner wrote:
> This is a simple patch to add a way that the GLIBC team call tell that certain
> __float128 built-in functions are available.  While previous patches of mine
> set __FAST_FP_FMAF128, which could be used for this purpose, this macro just
> bumps __FLOAT128_HARDWARE__ to say that the built-in functions are available in
> addition to supporting the basic IEEE 128-bit floating point instructions.

I don't think this is such a great macro name for this purpose.

What problem does this solve?


Segher

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH], Update __FLOAT128_HARDWARE__ on power9
  2017-10-25 23:57 ` Segher Boessenkool
@ 2017-10-26  0:11   ` Michael Meissner
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Meissner @ 2017-10-26  0:11 UTC (permalink / raw)
  To: Segher Boessenkool
  Cc: Michael Meissner, GCC Patches, David Edelsohn, Bill Schmidt

On Wed, Oct 25, 2017 at 06:56:20PM -0500, Segher Boessenkool wrote:
> On Fri, Oct 20, 2017 at 04:56:41PM -0400, Michael Meissner wrote:
> > This is a simple patch to add a way that the GLIBC team call tell that certain
> > __float128 built-in functions are available.  While previous patches of mine
> > set __FAST_FP_FMAF128, which could be used for this purpose, this macro just
> > bumps __FLOAT128_HARDWARE__ to say that the built-in functions are available in
> > addition to supporting the basic IEEE 128-bit floating point instructions.
> 
> I don't think this is such a great macro name for this purpose.
> 
> What problem does this solve?

The problem was the GLIBC maintainers asked for some way to determine that the
compiler supports fast FMA and SQRT built-ins that generate the XSFMADDQP and
XSSQRTQP instructions on ISA 3.0.

Unfortunately, they can't just check the version number being >= 8 because the
patch might be back ported to older versions of GCC (specificaly the Advance
Toolchain 11.0-n).

At the time, I was struggling with getting the the machine independent support
for FMA, SQRT, etc. using _Float<N> and _Float<N>X types done in the machine
independent portion of the compiler.  It looks like that is converging, so
assuming I get the approval to check it in, the GLIBC team will be able to
check whether __FP_FAST_FMAF128 is defined to do the same check.

In that case, I was going to suggest disregarding this patch.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.vnet.ibm.com, phone: +1 (978) 899-4797

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-10-26  0:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-20 21:06 [PATCH], Update __FLOAT128_HARDWARE__ on power9 Michael Meissner
2017-10-25 23:57 ` Segher Boessenkool
2017-10-26  0:11   ` Michael Meissner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).