[gcc(refs/users/wschmidt/heads/builtins7)] rs6000: Write output to the vector definition include file
William Schmidt
wschmidt@gcc.gnu.org
Sun Mar 7 16:44:44 GMT 2021
https://gcc.gnu.org/g:7c9625978437fef4bc431bf0ace4cfa6fbc80a04
commit 7c9625978437fef4bc431bf0ace4cfa6fbc80a04
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date: Wed Mar 3 16:33:52 2021 -0600
rs6000: Write output to the vector definition include file
2021-03-03 Bill Schmidt <wschmidt@linux.ibm.com>
gcc/
* config/rs6000/rs6000-gen-builtins.c (write_defines_file):
Implement.
Diff:
---
gcc/config/rs6000/rs6000-gen-builtins.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c b/gcc/config/rs6000/rs6000-gen-builtins.c
index c2fa94f374d..d6f03e66f3d 100644
--- a/gcc/config/rs6000/rs6000-gen-builtins.c
+++ b/gcc/config/rs6000/rs6000-gen-builtins.c
@@ -2029,6 +2029,33 @@ write_init_file ()
static int
write_defines_file ()
{
+ fprintf (defines_file, "#ifndef _RS6000_VECDEFINES_H\n");
+ fprintf (defines_file, "#define _RS6000_VECDEFINES_H 1\n\n");
+ fprintf (defines_file, "#if defined(_ARCH_PPC64) && defined (_ARCH_PWR9)\n");
+ fprintf (defines_file, " #define _ARCH_PPC64_PWR9 1\n");
+ fprintf (defines_file, "#endif\n\n");
+ for (int i = 0; i < num_ovld_stanzas; i++)
+ if (strcmp (ovld_stanzas[i].extern_name, "SKIP"))
+ {
+ if (ovld_stanzas[i].ifdef)
+ fprintf (defines_file, "#ifdef %s\n", ovld_stanzas[i].ifdef);
+ fprintf (defines_file, "#define %s %s\n",
+ ovld_stanzas[i].extern_name,
+ ovld_stanzas[i].intern_name);
+ if (ovld_stanzas[i].ifdef)
+ fprintf (defines_file, "#endif\n");
+ }
+
+ /* Write some temporary defines to use until we make the switch. */
+ fprintf (defines_file, "\n/* #### TEMPORARY #### */\n");
+ fprintf (defines_file,
+ "#define __builtin_vec_splat_s8 __builtin_altivec_vspltisb\n");
+ fprintf (defines_file,
+ "#define __builtin_vec_splat_s16 __builtin_altivec_vspltish\n");
+ fprintf (defines_file,
+ "#define __builtin_vec_splat_s32 __builtin_altivec_vspltisw\n");
+
+ fprintf (defines_file, "\n#endif\n");
return 1;
}
More information about the Gcc-cvs
mailing list