diff mbox

Implement C _FloatN, _FloatNx types [version 6]

Message ID alpine.DEB.2.20.1608221140550.32194@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Aug. 22, 2016, 11:48 a.m. UTC
On Mon, 22 Aug 2016, Matthew Wahab wrote:

> > +  TEST_I_F(TItype, UTItype, _Float32, FLT32X_MANT_DIG, FLT32X_MAX_EXP);
> > +  exit (0);
> > +
> 
> This test fails with an abort at runtime. The other float32x tests pass.

That should be fixed by the commit I made to fix the issue pointed out by 
Andreas.

> This change makes gcc.dg/torture/arm-fp16-int-convert-{alt,ieee].c fail 
> because they still pass four arguments to the macro, not five.

I've applied this patch that should fix this.

Update TEST_I_F calls in ARM fp-int-convert tests.

gcc/testsuite:
2016-08-22  Joseph Myers  <joseph@codesourcery.com>

	* gcc.dg/torture/arm-fp16-int-convert-alt.c (FP16_MAX_EXP): New
	macro.
	(main): Update calls to TEST_I_F.
	* gcc.dg/torture/arm-fp16-int-convert-ieee.c (FP16_MAX_EXP): New
	macro.
	(main): Update calls to TEST_I_F.

Comments

Joseph Myers Aug. 22, 2016, 5:52 p.m. UTC | #1
On Mon, 22 Aug 2016, Joseph Myers wrote:

> > This change makes gcc.dg/torture/arm-fp16-int-convert-{alt,ieee].c fail 
> > because they still pass four arguments to the macro, not five.
> 
> I've applied this patch that should fix this.

I should point, however, that these tests are currently using float not 
__fp16, so aren't very useful.  Properly they should test with __fp16, but 
maybe they fail when doing that if there are still double rounding issues 
converting to __fp16 in some cases?
diff mbox

Patch

Index: gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c	(revision 239655)
+++ gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-alt.c	(working copy)
@@ -4,14 +4,15 @@ 
 
 #include "fp-int-convert.h"
 #define FP16_MANT_DIG 11
+#define FP16_MAX_EXP 17
 
 int
 main (void)
 {
-  TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG);
-  TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG);
-  TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG);
-  TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG);
-  TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG);
+  TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG, FP16_MAX_EXP);
   exit (0);
 }
Index: gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c	(revision 239655)
+++ gcc/testsuite/gcc.dg/torture/arm-fp16-int-convert-ieee.c	(working copy)
@@ -4,14 +4,15 @@ 
 
 #include "fp-int-convert.h"
 #define FP16_MANT_DIG 11
+#define FP16_MAX_EXP 16
 
 int
 main (void)
 {
-  TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG);
-  TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG);
-  TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG);
-  TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG);
-  TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG);
+  TEST_I_F(signed char, unsigned char, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed short, unsigned short, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed int, unsigned int, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed long, unsigned long, float, FP16_MANT_DIG, FP16_MAX_EXP);
+  TEST_I_F(signed long long, unsigned long long, float, FP16_MANT_DIG, FP16_MAX_EXP);
   exit (0);
 }