* Updating glibc mathinlines.h to reflect additional GCC builtins ?
@ 2004-09-24 6:38 Kaveh R. Ghazi
2004-09-24 6:56 ` Uros Bizjak
0 siblings, 1 reply; 6+ messages in thread
From: Kaveh R. Ghazi @ 2004-09-24 6:38 UTC (permalink / raw)
To: jakub, uros; +Cc: gcc, libc-hacker
Jakub,
I'm looking over sysdeps/i386/fpu/bits/mathinline.h
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/fpu/bits/mathinline.h?cvsroot=glibc
and the changes you made here:
http://sources.redhat.com/ml/libc-hacker/2004-05/msg00048.html
I think we might be able to use a few more GCC builtins for gcc-3.5+.
Looking through mathinline.h and cross referencing it with gcc, I
think the following additional builtins might be usable:
pow2 (-> __builtin_exp2 ?)
sincos (?)
floor
ceil
rint
(Uros, does this match what you implemented in GCC in the last few
months? Have I missed any?)
Jakub, would you consider updating mathinlines.h to reflect that these
work also? (I don't have hardware access to test it myself.)
Thanks,
--Kaveh
PS: We could use someone to implement the following for gcc-4.1 ;-)
signbit (done http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02499.html )
sgn
sinh
cosh
tanh
ldexp
asinh
acosh
atanh
fma
hypot
lrint
llrint
finite
coshm1
acosh1p
--
Kaveh R. Ghazi ghazi@caip.rutgers.edu
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Updating glibc mathinlines.h to reflect additional GCC builtins ?
2004-09-24 6:38 Updating glibc mathinlines.h to reflect additional GCC builtins ? Kaveh R. Ghazi
@ 2004-09-24 6:56 ` Uros Bizjak
2004-09-24 11:23 ` Paolo Bonzini
0 siblings, 1 reply; 6+ messages in thread
From: Uros Bizjak @ 2004-09-24 6:56 UTC (permalink / raw)
To: Kaveh R. Ghazi; +Cc: jakub, gcc, libc-hacker
Kaveh R. Ghazi wrote:
>Looking through mathinline.h and cross referencing it with gcc, I
>think the following additional builtins might be usable:
>
>pow2 (-> __builtin_exp2 ?)
>sincos (?)
>floor
>ceil
>rint
>
>(Uros, does this match what you implemented in GCC in the last few
> months? Have I missed any?)
>
>
nearbyint() is also implemented as builtin.
Regarding sincos(), a patch was submitted to gcc-patches
(http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00555.html). It used
soon-to-be-obsoleted ADDRESSOF optimization in sincos expander
(http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00653.html), so it was not
commited to CVS. As fsincos is generated automatically, it was somehow
put on hold...
>ldexp
>
>
ldexp needs an expander and perhaps an expand_twoval_unop() which would
handle (double),(int) combination.
frexp also needs the same expander, but as in sincos case, without
ADDRESSOF optimization.
>fma
>hypot
>
>
fma and hypot were discussed in length here:
http://gcc.gnu.org/ml/gcc-patches/2004-05/msg00385.html. However, they
could stay as inline function (explanation is below).
>lrint
>llrint
>
>
The patterns to implement this function would be actually the same as
patterns to implement fix_trunc* insn. With current infrastructure, the
only difference from fix_trunc* for x86 would be an (set_attr "i387_cw"
"any") instead of (set_attr "i387_cw" "trunc"). However, whole block of
fix_trunc* patterns would have to be copied - perhaps this could be
implemented with more elegance by using new macro stuff?
OTOH, infrastructure allows us to implement BUILT_IN_LCEIL,
BUILT_IN_LLCEIL, BUILT_IN_LFLOOR, etc... to optimize an `(int) floor()`
construct. Again just by changing a value of "i387_cw" attribute. Of
course, some help from midlevel would be needed to transform (int)
floor() into BUILT_IN_LFLOOR, just like (int) rint() is transformed into
BUILT_IN_LRINT. And SSE instructions could be plugged into this scheme -
by adding "sse_*" values (with appropriate control word handling) to
i387_cw attribute [well, we shouldn't call it i387_cw in this case ;> ].
Unfortunatelly, this is 4.1 stuff...
Regarding hyperbolic functions (and perhaps fma and hypot): they are
implemented as ordinary math on "leaf" functions, and RTL optimizers
optimize these as if they were written in the form of RTL patterns. I
think that these functions should remain in their current form as
inlined functions. However, sgn/sgn1 should be implemented as "leaf" RTL
pattern for them.
Basically, everything is already implemented, just some "glue logic" is
missing.
Uros.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Updating glibc mathinlines.h to reflect additional GCC builtins ?
2004-09-24 6:56 ` Uros Bizjak
@ 2004-09-24 11:23 ` Paolo Bonzini
2004-09-24 11:29 ` Paolo Bonzini
2004-09-25 11:54 ` Giovanni Bajo
0 siblings, 2 replies; 6+ messages in thread
From: Paolo Bonzini @ 2004-09-24 11:23 UTC (permalink / raw)
To: gcc; +Cc: jakub, gcc, libc-hacker
[-- Attachment #1: Type: text/plain, Size: 897 bytes --]
> Regarding sincos(), a patch was submitted to gcc-patches
> (http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00555.html). It used
> soon-to-be-obsoleted ADDRESSOF optimization in sincos expander
> (http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00653.html), so it was not
> commited to CVS. As fsincos is generated automatically, it was somehow
> put on hold...
Just FYI (I don't think this is appropriate for stage3, and I haven't
bootstrapped/regtested it yet), here is a patch that does what I
suggested in the message Uros cited above.
Some magic is needed to avoid bad interaction with the cos (-x) => cos
(x) optimization, but the patch is quite simple.
Paolo
2004-09-24 Paolo Bonzini <bonzini@gnu.org>
* builtins.c (fold_builtin_sincos): New.
(fold_builtin): Call it.
2004-09-24 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/i386-387-9.c, gcc.dg/builtins-47.c: New testcases.
[-- Attachment #2: fold-builtin-sincos.patch --]
[-- Type: text/plain, Size: 5692 bytes --]
Index: testsuite/gcc.dg/builtins-47.c
===================================================================
RCS file: testsuite/gcc.dg/builtins-47.c
diff -N testsuite/gcc.dg/builtins-47.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ testsuite/gcc.dg/builtins-47.c 24 Sep 2004 08:35:35 -0000
@@ -0,0 +1,43 @@
+/* Copyright (C) 2004 Free Software Foundation.
+
+ Check that the sincos, sincosf, sincosl
+ built-in functions compile.
+
+ Written by Paolo Bonzini, 24th Sep 2004. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -ffast-math" } */
+
+float sf, cf;
+double sd, cd;
+long double sl, cl;
+
+void f1 (float x)
+{
+ __builtin_sincosf (x, &sf, &cf);
+};
+
+void f2 (double x)
+{
+ __builtin_sincos (x, &sd, &cd);
+};
+
+void f3 (long double x)
+{
+ __builtin_sincosl (x, &sl, &cl);
+};
+
+void g1 (float x)
+{
+ __builtin_sincosf (-x, &sf, &cf);
+};
+
+void g2 (double x)
+{
+ __builtin_sincos (-x, &sd, &cd);
+};
+
+void g3 (long double x)
+{
+ __builtin_sincosl (-x, &sl, &cl);
+};
Index: testsuite/gcc.dg/i386-387-9.c
===================================================================
RCS file: testsuite/gcc.dg/i386-387-9.c
diff -N testsuite/gcc.dg/i386-387-9.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ testsuite/gcc.dg/i386-387-9.c 24 Sep 2004 08:35:35 -0000
@@ -0,0 +1,39 @@
+/* Verify that 387 fsincos instruction is generated from __builtin_sincos. */
+/* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-options "-O2 -ffast-math -march=i686" } */
+/* { dg-final { scan-assembler "fsincos" } } */
+/* { dg-final { scan-assembler-not "call" } } */
+
+float sf, cf;
+double sd, cd;
+long double sl, cl;
+
+void f1 (float x)
+{
+ __builtin_sincosf (x, &sf, &cf);
+};
+
+void f2 (double x)
+{
+ __builtin_sincos (x, &sd, &cd);
+};
+
+void f3 (long double x)
+{
+ __builtin_sincosl (x, &sl, &cl);
+};
+
+void g1 (float x)
+{
+ __builtin_sincosf (-x, &sf, &cf);
+};
+
+void g2 (double x)
+{
+ __builtin_sincos (-x, &sd, &cd);
+};
+
+void g3 (long double x)
+{
+ __builtin_sincosl (-x, &sl, &cl);
+};
Index: builtins.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/builtins.c,v
retrieving revision 1.387
diff -u -p -r1.387 builtins.c
--- builtins.c 23 Sep 2004 06:16:08 -0000 1.387
+++ builtins.c 24 Sep 2004 08:35:37 -0000
@@ -154,6 +154,7 @@ static tree fold_builtin_cbrt (tree, tre
static tree fold_builtin_pow (tree, tree, tree);
static tree fold_builtin_sin (tree);
static tree fold_builtin_cos (tree, tree, tree);
+static tree fold_builtin_sincos (tree, tree);
static tree fold_builtin_tan (tree);
static tree fold_builtin_atan (tree, tree);
static tree fold_builtin_trunc (tree);
@@ -6757,6 +6758,82 @@ fold_builtin_cos (tree arglist, tree typ
return NULL_TREE;
}
+/* Fold function call to builtin cos, cosf, or cosl. Return
+ NULL_TREE if no simplification can be made. */
+static tree
+fold_builtin_sincos (tree arglist, tree fndecl)
+{
+ tree arg, arg1, arg2, sin_fn, cos_fn, sin_modify, cos_modify;
+ tree sin_fndecl, cos_fndecl;
+ enum machine_mode mode;
+ bool negate_sin;
+
+ if (!validate_arglist (arglist,
+ REAL_TYPE, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
+ return NULL_TREE;
+
+ /* Check if sincos insn is available, otherwise fallback
+ to usual builtin. */
+ arg = TREE_VALUE (arglist);
+ mode = TYPE_MODE (TREE_TYPE (arg));
+ if (sincos_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing)
+ return NULL_TREE;
+
+ switch (DECL_FUNCTION_CODE (fndecl))
+ {
+ case BUILT_IN_SINCOS:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SIN];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COS];
+ break;
+
+ case BUILT_IN_SINCOSF:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SINF];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COSF];
+ break;
+
+ case BUILT_IN_SINCOSL:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SINL];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COSL];
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ /* Avoid that cos(-x) is optimized into cos (x) and sincos_optab
+ cannot be used anymore. */
+ if (TREE_CODE (arg) == NEGATE_EXPR)
+ {
+ arg = TREE_OPERAND (arg, 0);
+ negate_sin = true;
+ }
+ else
+ negate_sin = false;
+
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ sin_fn = build_function_call_expr (sin_fndecl,
+ build_tree_list (NULL_TREE, arg));
+ if (negate_sin)
+ sin_fn = build1 (NEGATE_EXPR, TREE_TYPE (sin_fn), sin_fn);
+
+ sin_modify =
+ build2 (MODIFY_EXPR, TREE_TYPE (TREE_TYPE (arg1)),
+ build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (arg1)), arg1),
+ fold_convert (TREE_TYPE (TREE_TYPE (arg1)), sin_fn));
+
+ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
+ cos_fn = build_function_call_expr (cos_fndecl,
+ build_tree_list (NULL_TREE, arg));
+ cos_modify =
+ build2 (MODIFY_EXPR, TREE_TYPE (TREE_TYPE (arg2)),
+ build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (arg2)), arg2),
+ fold_convert (TREE_TYPE (TREE_TYPE (arg2)), cos_fn));
+
+ return build1 (NOP_EXPR, void_type_node,
+ build2 (COMPOUND_EXPR, TREE_TYPE (sin_modify),
+ cos_modify, sin_modify));
+}
+
/* Fold function call to builtin tan, tanf, or tanl. Return
NULL_TREE if no simplification can be made. */
static tree
@@ -8288,6 +8365,11 @@ fold_builtin_1 (tree exp, bool ignore)
case BUILT_IN_COSL:
return fold_builtin_cos (arglist, type, fndecl);
+ case BUILT_IN_SINCOS:
+ case BUILT_IN_SINCOSF:
+ case BUILT_IN_SINCOSL:
+ return fold_builtin_sincos (arglist, fndecl);
+
case BUILT_IN_EXP:
case BUILT_IN_EXPF:
case BUILT_IN_EXPL:
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Updating glibc mathinlines.h to reflect additional GCC builtins ?
2004-09-24 11:23 ` Paolo Bonzini
@ 2004-09-24 11:29 ` Paolo Bonzini
2004-09-25 11:54 ` Giovanni Bajo
1 sibling, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2004-09-24 11:29 UTC (permalink / raw)
To: Uros Bizjak; +Cc: jakub, gcc, libc-hacker
[-- Attachment #1: Type: text/plain, Size: 897 bytes --]
> Regarding sincos(), a patch was submitted to gcc-patches
> (http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00555.html). It used
> soon-to-be-obsoleted ADDRESSOF optimization in sincos expander
> (http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00653.html), so it was not
> commited to CVS. As fsincos is generated automatically, it was somehow
> put on hold...
Just FYI (I don't think this is appropriate for stage3, and I haven't
bootstrapped/regtested it yet), here is a patch that does what I
suggested in the message Uros cited above.
Some magic is needed to avoid bad interaction with the cos (-x) => cos
(x) optimization, but the patch is quite simple.
Paolo
2004-09-24 Paolo Bonzini <bonzini@gnu.org>
* builtins.c (fold_builtin_sincos): New.
(fold_builtin): Call it.
2004-09-24 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/i386-387-9.c, gcc.dg/builtins-47.c: New testcases.
[-- Attachment #2: fold-builtin-sincos.patch --]
[-- Type: text/plain, Size: 5692 bytes --]
Index: testsuite/gcc.dg/builtins-47.c
===================================================================
RCS file: testsuite/gcc.dg/builtins-47.c
diff -N testsuite/gcc.dg/builtins-47.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ testsuite/gcc.dg/builtins-47.c 24 Sep 2004 08:35:35 -0000
@@ -0,0 +1,43 @@
+/* Copyright (C) 2004 Free Software Foundation.
+
+ Check that the sincos, sincosf, sincosl
+ built-in functions compile.
+
+ Written by Paolo Bonzini, 24th Sep 2004. */
+
+/* { dg-do compile } */
+/* { dg-options "-O2 -ffast-math" } */
+
+float sf, cf;
+double sd, cd;
+long double sl, cl;
+
+void f1 (float x)
+{
+ __builtin_sincosf (x, &sf, &cf);
+};
+
+void f2 (double x)
+{
+ __builtin_sincos (x, &sd, &cd);
+};
+
+void f3 (long double x)
+{
+ __builtin_sincosl (x, &sl, &cl);
+};
+
+void g1 (float x)
+{
+ __builtin_sincosf (-x, &sf, &cf);
+};
+
+void g2 (double x)
+{
+ __builtin_sincos (-x, &sd, &cd);
+};
+
+void g3 (long double x)
+{
+ __builtin_sincosl (-x, &sl, &cl);
+};
Index: testsuite/gcc.dg/i386-387-9.c
===================================================================
RCS file: testsuite/gcc.dg/i386-387-9.c
diff -N testsuite/gcc.dg/i386-387-9.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ testsuite/gcc.dg/i386-387-9.c 24 Sep 2004 08:35:35 -0000
@@ -0,0 +1,39 @@
+/* Verify that 387 fsincos instruction is generated from __builtin_sincos. */
+/* { dg-do compile { target "i?86-*-*" } } */
+/* { dg-options "-O2 -ffast-math -march=i686" } */
+/* { dg-final { scan-assembler "fsincos" } } */
+/* { dg-final { scan-assembler-not "call" } } */
+
+float sf, cf;
+double sd, cd;
+long double sl, cl;
+
+void f1 (float x)
+{
+ __builtin_sincosf (x, &sf, &cf);
+};
+
+void f2 (double x)
+{
+ __builtin_sincos (x, &sd, &cd);
+};
+
+void f3 (long double x)
+{
+ __builtin_sincosl (x, &sl, &cl);
+};
+
+void g1 (float x)
+{
+ __builtin_sincosf (-x, &sf, &cf);
+};
+
+void g2 (double x)
+{
+ __builtin_sincos (-x, &sd, &cd);
+};
+
+void g3 (long double x)
+{
+ __builtin_sincosl (-x, &sl, &cl);
+};
Index: builtins.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/builtins.c,v
retrieving revision 1.387
diff -u -p -r1.387 builtins.c
--- builtins.c 23 Sep 2004 06:16:08 -0000 1.387
+++ builtins.c 24 Sep 2004 08:35:37 -0000
@@ -154,6 +154,7 @@ static tree fold_builtin_cbrt (tree, tre
static tree fold_builtin_pow (tree, tree, tree);
static tree fold_builtin_sin (tree);
static tree fold_builtin_cos (tree, tree, tree);
+static tree fold_builtin_sincos (tree, tree);
static tree fold_builtin_tan (tree);
static tree fold_builtin_atan (tree, tree);
static tree fold_builtin_trunc (tree);
@@ -6757,6 +6758,82 @@ fold_builtin_cos (tree arglist, tree typ
return NULL_TREE;
}
+/* Fold function call to builtin cos, cosf, or cosl. Return
+ NULL_TREE if no simplification can be made. */
+static tree
+fold_builtin_sincos (tree arglist, tree fndecl)
+{
+ tree arg, arg1, arg2, sin_fn, cos_fn, sin_modify, cos_modify;
+ tree sin_fndecl, cos_fndecl;
+ enum machine_mode mode;
+ bool negate_sin;
+
+ if (!validate_arglist (arglist,
+ REAL_TYPE, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
+ return NULL_TREE;
+
+ /* Check if sincos insn is available, otherwise fallback
+ to usual builtin. */
+ arg = TREE_VALUE (arglist);
+ mode = TYPE_MODE (TREE_TYPE (arg));
+ if (sincos_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing)
+ return NULL_TREE;
+
+ switch (DECL_FUNCTION_CODE (fndecl))
+ {
+ case BUILT_IN_SINCOS:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SIN];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COS];
+ break;
+
+ case BUILT_IN_SINCOSF:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SINF];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COSF];
+ break;
+
+ case BUILT_IN_SINCOSL:
+ sin_fndecl = implicit_built_in_decls[BUILT_IN_SINL];
+ cos_fndecl = implicit_built_in_decls[BUILT_IN_COSL];
+ break;
+
+ default:
+ gcc_unreachable ();
+ }
+
+ /* Avoid that cos(-x) is optimized into cos (x) and sincos_optab
+ cannot be used anymore. */
+ if (TREE_CODE (arg) == NEGATE_EXPR)
+ {
+ arg = TREE_OPERAND (arg, 0);
+ negate_sin = true;
+ }
+ else
+ negate_sin = false;
+
+ arg1 = TREE_VALUE (TREE_CHAIN (arglist));
+ sin_fn = build_function_call_expr (sin_fndecl,
+ build_tree_list (NULL_TREE, arg));
+ if (negate_sin)
+ sin_fn = build1 (NEGATE_EXPR, TREE_TYPE (sin_fn), sin_fn);
+
+ sin_modify =
+ build2 (MODIFY_EXPR, TREE_TYPE (TREE_TYPE (arg1)),
+ build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (arg1)), arg1),
+ fold_convert (TREE_TYPE (TREE_TYPE (arg1)), sin_fn));
+
+ arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
+ cos_fn = build_function_call_expr (cos_fndecl,
+ build_tree_list (NULL_TREE, arg));
+ cos_modify =
+ build2 (MODIFY_EXPR, TREE_TYPE (TREE_TYPE (arg2)),
+ build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (arg2)), arg2),
+ fold_convert (TREE_TYPE (TREE_TYPE (arg2)), cos_fn));
+
+ return build1 (NOP_EXPR, void_type_node,
+ build2 (COMPOUND_EXPR, TREE_TYPE (sin_modify),
+ cos_modify, sin_modify));
+}
+
/* Fold function call to builtin tan, tanf, or tanl. Return
NULL_TREE if no simplification can be made. */
static tree
@@ -8288,6 +8365,11 @@ fold_builtin_1 (tree exp, bool ignore)
case BUILT_IN_COSL:
return fold_builtin_cos (arglist, type, fndecl);
+ case BUILT_IN_SINCOS:
+ case BUILT_IN_SINCOSF:
+ case BUILT_IN_SINCOSL:
+ return fold_builtin_sincos (arglist, fndecl);
+
case BUILT_IN_EXP:
case BUILT_IN_EXPF:
case BUILT_IN_EXPL:
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Updating glibc mathinlines.h to reflect additional GCC builtins ?
2004-09-24 11:23 ` Paolo Bonzini
2004-09-24 11:29 ` Paolo Bonzini
@ 2004-09-25 11:54 ` Giovanni Bajo
2004-09-25 12:51 ` Paolo Bonzini
1 sibling, 1 reply; 6+ messages in thread
From: Giovanni Bajo @ 2004-09-25 11:54 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Jakub Jelinek, gcc, libc-hacker
Paolo Bonzini wrote:
>> Just FYI (I don't think this is appropriate for stage3, and I haven't
>> bootstrapped/regtested it yet), here is a patch that does what I
>> suggested in the message Uros cited above.
>> 2004-09-24 Paolo Bonzini <bonzini@gnu.org>
>>
>> * builtins.c (fold_builtin_sincos): New.
>> (fold_builtin): Call it.
>>
>> 2004-09-24 Paolo Bonzini <bonzini@gnu.org>
>>
>> * gcc.dg/i386-387-9.c, gcc.dg/builtins-47.c: New testcases.
Please, file a new PR in Bugzilla, attacch this patch to it, and link it to
PR17652 (4.1 metabug), so that we don't lose this.
Thanks.
Giovanni Bajo
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Updating glibc mathinlines.h to reflect additional GCC builtins ?
2004-09-25 11:54 ` Giovanni Bajo
@ 2004-09-25 12:51 ` Paolo Bonzini
0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2004-09-25 12:51 UTC (permalink / raw)
To: Giovanni Bajo, gcc
> Please, file a new PR in Bugzilla, attacch this patch to it, and link it to
> PR17652 (4.1 metabug), so that we don't lose this.
I meant to do after bootstrapping/regtested. BTW the patch surely needs
to wrap the first argument with save_expr ().
Paolo
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2004-09-25 11:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-24 6:38 Updating glibc mathinlines.h to reflect additional GCC builtins ? Kaveh R. Ghazi
2004-09-24 6:56 ` Uros Bizjak
2004-09-24 11:23 ` Paolo Bonzini
2004-09-24 11:29 ` Paolo Bonzini
2004-09-25 11:54 ` Giovanni Bajo
2004-09-25 12:51 ` Paolo Bonzini
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).