Hi,

the attached patch fixes 2 more testcases for s390x.

gcc.dg/dfp/fe-convert-2.c: This one is supposed to test libdecnumber
        functions. On s390 we have an instruction which does the
        conversion performed here what makes the testcase fail with
        -march=z9-ec or higher. Fixed by forcing use of software dfp.

testsuite/libgomp.c/atomic-2.c: A long double data type is used here
        to test atomic access on 16 byte values. However, long double
        on s390x is not necessarily 16 byte aligned but this is an
        requirement for the 128 bit compare and swap instruction.
        Fixed by forcing the alignment of the variable to 16 byte.

Ok for mainline?

Bye,

-Andreas-


2012-01-27  Andreas Krebbel  <andreas.kreb...@de.ibm.com>

        * gcc.dg/dfp/fe-convert-2.c: Force use of soft dfp on s390 and
          s390x.
        * testsuite/libgomp.c/atomic-2.c: Force alignment of the long
        double variable.

---
 gcc/testsuite/gcc.dg/dfp/fe-convert-2.c |    2 ++
 libgomp/testsuite/libgomp.c/atomic-2.c  |    2 !!
 2 files changed, 2 insertions(+), 2 modifications(!)

Index: gcc/testsuite/gcc.dg/dfp/fe-convert-2.c
===================================================================
*** gcc/testsuite/gcc.dg/dfp/fe-convert-2.c.orig
--- gcc/testsuite/gcc.dg/dfp/fe-convert-2.c
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-options "-mno-hard-dfp" { target { s390*-*-* } } } */
+ 
  /* Check that appropriate exceptions are raised for BFP to DFP conversions.
     The test only uses double and _Decimal32; tests for conversions to
     _Decimal64 would need 128-bit long double.  */
Index: libgomp/testsuite/libgomp.c/atomic-2.c
===================================================================
*** libgomp/testsuite/libgomp.c/atomic-2.c.orig
--- libgomp/testsuite/libgomp.c/atomic-2.c
***************
*** 6,12 ****
  #endif
  
  double d = 1.5;
! long double ld = 3;
  extern void abort (void);
  
  void
--- 6,12 ----
  #endif
  
  double d = 1.5;
! long double ld __attribute__ ((aligned (16))) = 3;
  extern void abort (void);
  
  void

Reply via email to