This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC][PATCH][RS6000] Support for PowerPC 750CL paired-single instructions
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Revital1 Eres <ERES at il dot ibm dot com>
- Cc: Ben Elliston <bje at au1 dot ibm dot com>, Victor Kaplansky <VICTORK at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 15 Aug 2007 14:25:16 -0400
- Subject: Re: [RFC][PATCH][RS6000] Support for PowerPC 750CL paired-single instructions
- References: <OFEC4E6162.4BCC7D29-ONC2257332.0080C8E4-C2257338.0062DC83@il.ibm.com>
Thanks for implementing the support for this processor.
A couple of early comments:
1) Where is TARGET_PAIRED_FLOAT defined if 750cl.h is not included?
2) Why is this enabled for powerpc64-linux? Why not a special paired
configuration and why not powerpc-linux?
3) The patch damages the formatting in an Altivec function:
/* Expand vec_init builtin. */
static rtx
altivec_expand_vec_init_builtin (tree type, tree exp, rtx target)
@@ -8012,7 +8171,6 @@
case ALTIVEC_BUILTIN_VEC_EXT_V16QI:
case ALTIVEC_BUILTIN_VEC_EXT_V4SF:
return altivec_expand_vec_ext_builtin (exp, target);
-
default:
break;
/* Fall through. */
@@ -8054,7 +8212,8 @@
exp, target);
case ALTIVEC_BUILTIN_LVX:
return altivec_expand_lv_builtin (CODE_FOR_altivec_lvx,
- exp, target);
+ exp, target);case ALTIVEC_BUILTIN_STVX:
+ return altivec_expand_stv_builtin (CODE_FOR_altivec_stvx, exp);
default:
break;
/* Fall through. */
4) The patch adds PROCESSOR_PPC750CL and related CPU attr, but no
scheduling information. It only uses PROCESSOR_PPC750CL identically to
PROCESSOR_PPC750, so why define it? It doesn't even enable TARGET_PAIRED.
5) The patch adds paired builtins to the bdesc_Narg structures, but those
only are enabled if -maltivec or -mspe is used. There is no mask, but the
code in rs6000_expand_builtin asserts that they are enabled. How does
this work?
Thanks, David