public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [spu, commit] Enable TImode vs. float conversion routines in libgcc
@ 2010-12-16 19:46 Ulrich Weigand
  2010-12-16 20:07 ` Joseph S. Myers
  2010-12-17 15:18 ` [spu, commit] Fix TImode->SFmode conversions " Ulrich Weigand
  0 siblings, 2 replies; 6+ messages in thread
From: Ulrich Weigand @ 2010-12-16 19:46 UTC (permalink / raw)
  To: gcc-patches

Hello,

on the SPU, we have the peculiar situation that while word size is
128 bit (since this is actually the register size), we're still
bascially a 32-bit architecture as far as ISA and ABI are concerned.

This has the effect that the back-end must generally support TImode
arithmetic (since many parts of the compiler expect arithmetic to
work at least up to the word size), but this is not just twice, but
four times the size of what most arithmetic instructions support.

While we mostly do support TImode arithmetic, there are a couple of
gaps.  In particular, we have so far not yet supported conversions
between TImode integers and floating-point.  However, this now
causes test suite failures as the Fortran run-time library expects
just such conversions to work; the compiler generates calls to the
appropriate TImode libgcc routines, but those simply are not present.

To fix this, the patch below adds TImode conversion routines to
libgcc, using the existing LIB2_SIDITI_CONV_FUNC mechanism.

This exposed a secondary problem in that spu.h did not use the
LIBGCC2_UNITS_PER_WORD define to choose to build a 32-bit libgcc,
but instead (ab)used MIN_UNITS_PER_WORD to do so.  This breaks
when enabling LIB2_SIDITI_CONV_FUNC, so the patch changes this
as well.

Tested on spu-elf with no regressions.

Committed to mainline.

Bye,
Ulrich


ChangeLog:

	* config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
	* config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
	(LIBGCC2_UNITS_PER_WORD): Define if not already defined.

Index: gcc/config/spu/t-spu-elf
===================================================================
*** gcc/config/spu/t-spu-elf	(revision 167696)
--- gcc/config/spu/t-spu-elf	(working copy)
*************** fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
*** 63,68 ****
--- 63,72 ----
  	echo '#undef US_SOFTWARE_GOFAST' >> fp-bit.c
  	cat $(srcdir)/config/fp-bit.c >> fp-bit.c
  
+ # Build TImode conversion routines to support Fortran 128-bit
+ # integer data types.
+ LIB2_SIDITI_CONV_FUNCS=yes
+ 
  # Don't let CTOR_LIST end up in sdata section.
  CRTSTUFF_T_CFLAGS =
  
Index: gcc/config/spu/spu.h
===================================================================
*** gcc/config/spu/spu.h	(revision 167696)
--- gcc/config/spu/spu.h	(working copy)
*************** extern GTY(()) int spu_tune;
*** 65,73 ****
  
  #define UNITS_PER_WORD (BITS_PER_WORD/BITS_PER_UNIT)
  
! /* We never actually change UNITS_PER_WORD, but defining this causes
!    libgcc to use some different sizes of types when compiling. */
! #define MIN_UNITS_PER_WORD 4
  
  #define POINTER_SIZE 32
  
--- 65,80 ----
  
  #define UNITS_PER_WORD (BITS_PER_WORD/BITS_PER_UNIT)
  
! /* When building libgcc, we need to assume 4 words per units even
!    though UNITS_PER_WORD is 16, because the SPU has basically a 32-bit
!    instruction set although register size is 128 bits.  In particular,
!    this causes libgcc to contain __divdi3 instead of __divti3 etc.
!    However, we allow this default to be re-defined on the command
!    line, so that we can use the LIB2_SIDITI_CONV_FUNCS mechanism
!    to get (in addition) TImode versions of some routines.  */
! #ifndef LIBGCC2_UNITS_PER_WORD
! #define LIBGCC2_UNITS_PER_WORD 4
! #endif
  
  #define POINTER_SIZE 32
  
-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

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

* Re: [spu, commit] Enable TImode vs. float conversion routines in libgcc
  2010-12-16 19:46 [spu, commit] Enable TImode vs. float conversion routines in libgcc Ulrich Weigand
@ 2010-12-16 20:07 ` Joseph S. Myers
  2010-12-17 15:31   ` [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc) Ulrich Weigand
  2010-12-17 15:18 ` [spu, commit] Fix TImode->SFmode conversions " Ulrich Weigand
  1 sibling, 1 reply; 6+ messages in thread
From: Joseph S. Myers @ 2010-12-16 20:07 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: gcc-patches

On Thu, 16 Dec 2010, Ulrich Weigand wrote:

> To fix this, the patch below adds TImode conversion routines to
> libgcc, using the existing LIB2_SIDITI_CONV_FUNC mechanism.

It would seem a good idea to enable testing of these functions as well.  
fp-int-convert.h contains logic also present in a few other places in the 
testsuite.

/* Not all platforms support TImode integers; logic as in
   gcc.dg/titype-1.c.  */
#if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));
#else
typedef long TItype;
typedef unsigned long UTItype;
#endif

If this target now supports TImode properly, perhaps that logic needs 
updating in whatever places have it to enable TImode for this target.

-- 
Joseph S. Myers
joseph@codesourcery.com

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

* [spu, commit] Fix TImode->SFmode conversions (Re: Enable TImode vs. float conversion routines in libgcc)
  2010-12-16 19:46 [spu, commit] Enable TImode vs. float conversion routines in libgcc Ulrich Weigand
  2010-12-16 20:07 ` Joseph S. Myers
@ 2010-12-17 15:18 ` Ulrich Weigand
  1 sibling, 0 replies; 6+ messages in thread
From: Ulrich Weigand @ 2010-12-17 15:18 UTC (permalink / raw)
  To: gcc-patches

Hello,

while the previous patch fixes TImode->DFmode conversions, it does not
correctly provide TImode->SFmode conversions (as noticed by the additional
testing suggested by Joseph Myers).  This is because of two issues:

- There is an unfortunate interaction between LIB2_SIDITI_CONV_FUNCS and
  LIB2FUNCS_EXCLUDE in the libgcc Makefile.in that causes breakage on SPU:

sifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,si,$(swfloatfuncs)))
difuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,di,$(dwfloatfuncs)))
tifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,ti,$(dwfloatfuncs)))

iter-items := $(sifuncs) $(difuncs) $(tifuncs)
iter-labels := $(sifuncs) $(difuncs) $(difuncs)
iter-sizes := $(patsubst %,4,$(sifuncs) $(difuncs)) $(patsubst %,8,$(tifuncs))

  These three lists must be of the same length, which in particular implies
  that $(difuncs) and $(tifuncs) must have the same length.  However, it is
  possible for LIB2FUNCS_EXCLUDE to remove some items from $(difuncs) while
  the corresponding items are left in $(tifuncs).  This happens on the SPU,
  because the DImode->SFmode conversion routines are excluded.

- However, for the same reason the DImode->SFmode routines are excluded,
  we actually have to exclude the TImode->SFmode routines too: the default
  implementation in libgcc assumes round-to-nearest, while on the SPU all
  single-precision floating-point operations should always use round-to-zero.

  Therefore the patch below implements TImode->SFmode conversions using
  round-to-zero inline in the compiler, following the existing DImode->
  SFmode model.  This means at this point there is no requirement to
  address the libgcc Makefile.in issue ...


Tested on spu-elf (including additional enabled testcases as pointed out
by Joseph Myers) with no regression.

Committed to mainline.

Bye,
Ulrich


ChangeLog:

	* config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
	_floatunstisf.
	* config/spu/spu.md ("floattisf2"): New expander.
	("floatunstisf2"): New insn pattern and splitter.
	("cgt_ti_m1"): New insn pattern.


Index: gcc/config/spu/t-spu-elf
===================================================================
*** gcc/config/spu/t-spu-elf	(revision 167950)
--- gcc/config/spu/t-spu-elf	(working copy)
*************** TARGET_LIBGCC2_CFLAGS = -fPIC -mwarn-rel
*** 26,33 ****
  
  # We exclude those because the libgcc2.c default versions do not support
  # the SPU single-precision format (round towards zero).  We provide our
! # own versions below.
! LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf
  
  # We provide our own version of __divdf3 that performs better and has
  # better support for non-default rounding modes.
--- 26,33 ----
  
  # We exclude those because the libgcc2.c default versions do not support
  # the SPU single-precision format (round towards zero).  We provide our
! # own versions below and/or via direct expansion.
! LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf _floattisf _floatunstisf
  
  # We provide our own version of __divdf3 that performs better and has
  # better support for non-default rounding modes.
Index: gcc/config/spu/spu.md
===================================================================
*** gcc/config/spu/spu.md	(revision 167950)
--- gcc/config/spu/spu.md	(working copy)
***************
*** 753,758 ****
--- 753,825 ----
      DONE;
    })
  
+ (define_expand "floattisf2"
+   [(set (match_operand:SF 0 "register_operand" "")
+ 	(float:SF (match_operand:TI 1 "register_operand" "")))]
+   ""
+   {
+     rtx c0 = gen_reg_rtx (SImode);
+     rtx r0 = gen_reg_rtx (TImode);
+     rtx r1 = gen_reg_rtx (SFmode);
+     rtx r2 = gen_reg_rtx (SImode);
+     rtx setneg = gen_reg_rtx (SImode);
+     rtx isneg = gen_reg_rtx (SImode);
+     rtx neg = gen_reg_rtx (TImode);
+     rtx mask = gen_reg_rtx (TImode);
+ 
+     emit_move_insn (c0, GEN_INT (-0x80000000ll));
+ 
+     emit_insn (gen_negti2 (neg, operands[1]));
+     emit_insn (gen_cgt_ti_m1 (isneg, operands[1]));
+     emit_insn (gen_extend_compare (mask, isneg));
+     emit_insn (gen_selb (r0, neg, operands[1], mask));
+     emit_insn (gen_andc_si (setneg, c0, isneg));
+ 
+     emit_insn (gen_floatunstisf2 (r1, r0));
+ 
+     emit_insn (gen_iorsi3 (r2, gen_rtx_SUBREG (SImode, r1, 0), setneg));
+     emit_move_insn (operands[0], gen_rtx_SUBREG (SFmode, r2, 0));
+     DONE;
+   })
+ 
+ (define_insn_and_split "floatunstisf2"
+   [(set (match_operand:SF 0 "register_operand" "=r")
+         (unsigned_float:SF (match_operand:TI 1 "register_operand" "r")))
+    (clobber (match_scratch:SF 2 "=r"))
+    (clobber (match_scratch:SF 3 "=r"))
+    (clobber (match_scratch:SF 4 "=r"))]
+   ""
+   "#"
+   "reload_completed"
+   [(set (match_dup:SF 0)
+         (unsigned_float:SF (match_dup:TI 1)))]
+   {
+     rtx op1_v4si = gen_rtx_REG (V4SImode, REGNO (operands[1]));
+     rtx op2_v4sf = gen_rtx_REG (V4SFmode, REGNO (operands[2]));
+     rtx op2_ti = gen_rtx_REG (TImode, REGNO (operands[2]));
+     rtx op3_ti = gen_rtx_REG (TImode, REGNO (operands[3]));
+ 
+     REAL_VALUE_TYPE scale;
+     real_2expN (&scale, 32, SFmode);
+ 
+     emit_insn (gen_floatunsv4siv4sf2 (op2_v4sf, op1_v4si));
+     emit_insn (gen_shlqby_ti (op3_ti, op2_ti, GEN_INT (4)));
+ 
+     emit_move_insn (operands[4],
+ 		    CONST_DOUBLE_FROM_REAL_VALUE (scale, SFmode));
+     emit_insn (gen_fmasf4 (operands[2],
+ 			   operands[2], operands[4], operands[3]));
+ 
+     emit_insn (gen_shlqby_ti (op3_ti, op3_ti, GEN_INT (4)));
+     emit_insn (gen_fmasf4 (operands[2],
+ 			   operands[2], operands[4], operands[3]));
+ 
+     emit_insn (gen_shlqby_ti (op3_ti, op3_ti, GEN_INT (4)));
+     emit_insn (gen_fmasf4 (operands[0],
+ 			   operands[2], operands[4], operands[3]));
+     DONE;
+   })
+ 
  ;; Do (double)(operands[1]+0x80000000u)-(double)0x80000000
  (define_expand "floatsidf2"
    [(set (match_operand:DF 0 "register_operand" "")
***************
*** 3218,3223 ****
--- 3285,3297 ----
      DONE;
    })
  
+ (define_insn "cgt_ti_m1" 
+   [(set (match_operand:SI 0 "spu_reg_operand" "=r")
+ 	(gt:SI (match_operand:TI 1 "spu_reg_operand" "r")
+ 	       (const_int -1)))]
+   ""
+   "cgti\t%0,%1,-1")
+ 
  (define_insn "cgt_ti"
    [(set (match_operand:SI 0 "spu_reg_operand" "=r")
  	(gt:SI (match_operand:TI 1 "spu_reg_operand" "r")

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

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

* [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc)
  2010-12-16 20:07 ` Joseph S. Myers
@ 2010-12-17 15:31   ` Ulrich Weigand
  2010-12-17 16:26     ` Joseph S. Myers
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrich Weigand @ 2010-12-17 15:31 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches

Joseph S. Myers wrote:
> On Thu, 16 Dec 2010, Ulrich Weigand wrote:
> > To fix this, the patch below adds TImode conversion routines to
> > libgcc, using the existing LIB2_SIDITI_CONV_FUNC mechanism.
> 
> It would seem a good idea to enable testing of these functions as well.  
> fp-int-convert.h contains logic also present in a few other places in the 
> testsuite.
> 
> /* Not all platforms support TImode integers; logic as in
>    gcc.dg/titype-1.c.  */
> #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
> typedef int TItype __attribute__ ((mode (TI)));
> typedef unsigned int UTItype __attribute__ ((mode (TI)));
> #else
> typedef long TItype;
> typedef unsigned long UTItype;
> #endif
> 
> If this target now supports TImode properly, perhaps that logic needs 
> updating in whatever places have it to enable TImode for this target.

Thanks for the tip!  I agree that this additional testing is helpful,
and in fact it did find a bug in the TImode->SFmode conversions (the
Fortran tests seemed to only have exercise TImode->DFmode, as it
turns out).  I've now checked in a fix for that problem here:
http://gcc.gnu.org/ml/gcc-patches/2010-12/msg01379.html


The patch below adds __SPU__ as platform supporting TImode in all
testcases I could find that use the gcc.dg/titype-1.c pattern.

Note that only some of them mention _WIN64 -- I'm not sure if this
was deliberate or an oversight (and I don't have access to a Win64
system at the moment), so I left this situation as is.

Does this look good to you, or do you see anything I overlooked?

(Tested on spu-elf with no regressions after the TImode->SFmode
patch was installed.)

Thanks,
Ulrich


ChangeLog:

	* gcc.dg/titype-1.c: Enable TImode on __SPU__.
	* gcc.dg/torture/fp-int-convert.h: Likewise.
	* gcc.dg/tree-ssa/ivopts-1.c: Likewise.
	* gcc.dg/uninit-C.c: Likewise.
	* gcc.dg/uninit-C-O0.c: Likewise.
	* gcc.dg/format/unnamed-1.c: Likewise.
	* gcc.dg/format/ms_unnamed-1.c: Likewise.


Index: gcc/testsuite/gcc.dg/uninit-C.c
===================================================================
*** gcc/testsuite/gcc.dg/uninit-C.c	(revision 167950)
--- gcc/testsuite/gcc.dg/uninit-C.c	(working copy)
***************
*** 3,9 ****
  /* { dg-options "-O -Wuninitialized" } */
  
  /* Not all platforms support TImode integers.  */
! #if defined(__LP64__) && !defined(__hppa__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
--- 3,9 ----
  /* { dg-options "-O -Wuninitialized" } */
  
  /* Not all platforms support TImode integers.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
Index: gcc/testsuite/gcc.dg/torture/fp-int-convert.h
===================================================================
*** gcc/testsuite/gcc.dg/torture/fp-int-convert.h	(revision 167950)
--- gcc/testsuite/gcc.dg/torture/fp-int-convert.h	(working copy)
*************** extern void exit (int);
*** 7,13 ****
  
  /* Not all platforms support TImode integers; logic as in
     gcc.dg/titype-1.c.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
  typedef int TItype __attribute__ ((mode (TI)));
  typedef unsigned int UTItype __attribute__ ((mode (TI)));
  #else
--- 7,13 ----
  
  /* Not all platforms support TImode integers; logic as in
     gcc.dg/titype-1.c.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64) || defined(__SPU__)
  typedef int TItype __attribute__ ((mode (TI)));
  typedef unsigned int UTItype __attribute__ ((mode (TI)));
  #else
Index: gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c	(revision 167950)
--- gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c	(working copy)
***************
*** 1,7 ****
  /* { dg-do compile } */
  
  /* Not all platforms support TImode integers.  */
! #if defined(__LP64__) && !defined(__hppa__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
--- 1,7 ----
  /* { dg-do compile } */
  
  /* Not all platforms support TImode integers.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
Index: gcc/testsuite/gcc.dg/uninit-C-O0.c
===================================================================
*** gcc/testsuite/gcc.dg/uninit-C-O0.c	(revision 167950)
--- gcc/testsuite/gcc.dg/uninit-C-O0.c	(working copy)
***************
*** 3,9 ****
  /* { dg-options "-Wuninitialized" } */
  
  /* Not all platforms support TImode integers.  */
! #if defined(__LP64__) && !defined(__hppa__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
--- 3,9 ----
  /* { dg-options "-Wuninitialized" } */
  
  /* Not all platforms support TImode integers.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
Index: gcc/testsuite/gcc.dg/titype-1.c
===================================================================
*** gcc/testsuite/gcc.dg/titype-1.c	(revision 167950)
--- gcc/testsuite/gcc.dg/titype-1.c	(working copy)
***************
*** 1,7 ****
  /* { dg-do run } */
  
  /* Not all platforms support TImode integers.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
--- 1,7 ----
  /* { dg-do run } */
  
  /* Not all platforms support TImode integers.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64) || defined(__SPU__)
  typedef int TItype __attribute__ ((mode (TI)));
  #else
  typedef long TItype;
Index: gcc/testsuite/gcc.dg/format/unnamed-1.c
===================================================================
*** gcc/testsuite/gcc.dg/format/unnamed-1.c	(revision 167950)
--- gcc/testsuite/gcc.dg/format/unnamed-1.c	(working copy)
***************
*** 10,16 ****
  
  /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
     but must be a #define to avoid giving the type a name.  */
! #if defined(__LP64__) && !defined(__hppa__)
  #define TItype int __attribute__ ((mode (TI)))
  #else
  #define TItype long
--- 10,16 ----
  
  /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
     but must be a #define to avoid giving the type a name.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
  #define TItype int __attribute__ ((mode (TI)))
  #else
  #define TItype long
Index: gcc/testsuite/gcc.dg/format/ms_unnamed-1.c
===================================================================
*** gcc/testsuite/gcc.dg/format/ms_unnamed-1.c	(revision 167950)
--- gcc/testsuite/gcc.dg/format/ms_unnamed-1.c	(working copy)
***************
*** 10,16 ****
  
  /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
     but must be a #define to avoid giving the type a name.  */
! #if defined(__LP64__) && !defined(__hppa__)
  #define TItype int __attribute__ ((mode (TI)))
  #else
  #define TItype long
--- 10,16 ----
  
  /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
     but must be a #define to avoid giving the type a name.  */
! #if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
  #define TItype int __attribute__ ((mode (TI)))
  #else
  #define TItype long


-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

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

* Re: [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc)
  2010-12-17 15:31   ` [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc) Ulrich Weigand
@ 2010-12-17 16:26     ` Joseph S. Myers
  2010-12-17 19:31       ` Ulrich Weigand
  0 siblings, 1 reply; 6+ messages in thread
From: Joseph S. Myers @ 2010-12-17 16:26 UTC (permalink / raw)
  To: Ulrich Weigand; +Cc: gcc-patches

On Fri, 17 Dec 2010, Ulrich Weigand wrote:

> The patch below adds __SPU__ as platform supporting TImode in all
> testcases I could find that use the gcc.dg/titype-1.c pattern.
> 
> Note that only some of them mention _WIN64 -- I'm not sure if this
> was deliberate or an oversight (and I don't have access to a Win64
> system at the moment), so I left this situation as is.
> 
> Does this look good to you, or do you see anything I overlooked?

As far as I can see this is fine, and I doubt the _WIN64 differences are 
deliberate.

-- 
Joseph S. Myers
joseph@codesourcery.com

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

* Re: [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc)
  2010-12-17 16:26     ` Joseph S. Myers
@ 2010-12-17 19:31       ` Ulrich Weigand
  0 siblings, 0 replies; 6+ messages in thread
From: Ulrich Weigand @ 2010-12-17 19:31 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc-patches

Joseph S. Myers wrote:
> On Fri, 17 Dec 2010, Ulrich Weigand wrote:
> 
> > The patch below adds __SPU__ as platform supporting TImode in all
> > testcases I could find that use the gcc.dg/titype-1.c pattern.
> > 
> > Note that only some of them mention _WIN64 -- I'm not sure if this
> > was deliberate or an oversight (and I don't have access to a Win64
> > system at the moment), so I left this situation as is.
> > 
> > Does this look good to you, or do you see anything I overlooked?
> 
> As far as I can see this is fine, and I doubt the _WIN64 differences are 
> deliberate.

OK, thanks again!  I've now checked in the patch.

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com

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

end of thread, other threads:[~2010-12-17 18:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-16 19:46 [spu, commit] Enable TImode vs. float conversion routines in libgcc Ulrich Weigand
2010-12-16 20:07 ` Joseph S. Myers
2010-12-17 15:31   ` [patch] Enable TImode tests (Re: Enable TImode vs. float conversion routines in libgcc) Ulrich Weigand
2010-12-17 16:26     ` Joseph S. Myers
2010-12-17 19:31       ` Ulrich Weigand
2010-12-17 15:18 ` [spu, commit] Fix TImode->SFmode conversions " Ulrich Weigand

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).