diff mbox

[rs6000] Skip test gfortran.dg/nan_7.f90 for little endian PowerPC

Message ID 1385589760.11764.76.camel@gnopaine
State New
Headers show

Commit Message

Bill Schmidt Nov. 27, 2013, 10:02 p.m. UTC
Hi,

The subject test case uses TRANSFER to do a bitcast from real(16) to
integer(16).  For IBM long double, this works OK on big endian, but not
so well on little endian.  The implementation of long double as two
64-bit quantities causes the most significant bits of the value to be in
a different place than the bit-interpretation as integer(16) expects.
So this patch just skips this test for powerpc*le-*-*.

Verified for powerpc64{,le}-unknown-linux-gnu.  Is this ok for trunk?

Thanks,
Bill


2013-11-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.

Comments

Jeff Law Nov. 27, 2013, 10:10 p.m. UTC | #1
On 11/27/13 15:02, Bill Schmidt wrote:
> Hi,
>
> The subject test case uses TRANSFER to do a bitcast from real(16) to
> integer(16).  For IBM long double, this works OK on big endian, but not
> so well on little endian.  The implementation of long double as two
> 64-bit quantities causes the most significant bits of the value to be in
> a different place than the bit-interpretation as integer(16) expects.
> So this patch just skips this test for powerpc*le-*-*.
>
> Verified for powerpc64{,le}-unknown-linux-gnu.  Is this ok for trunk?
>
> Thanks,
> Bill
>
>
> 2013-11-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
>
> 	* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.
OK.
jeff
diff mbox

Patch

Index: gcc/testsuite/gfortran.dg/nan_7.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_7.f90	(revision 205333)
+++ gcc/testsuite/gfortran.dg/nan_7.f90	(working copy)
@@ -2,6 +2,7 @@ 
 ! { dg-options "-fno-range-check" }
 ! { dg-require-effective-target fortran_real_16 }
 ! { dg-require-effective-target fortran_integer_16 }
+! { dg-skip-if "" { "powerpc*le-*-*" } { "*" } { "" } }
 ! PR47293 NAN not correctly read
 character(len=200) :: str
 real(16) :: r