diff mbox series

[power-ieee128] libgfortran: Small progress on the library side

Message ID 20211231135325.GG2664@tucnak
State New
Headers show
Series [power-ieee128] libgfortran: Small progress on the library side | expand

Commit Message

Jakub Jelinek Dec. 31, 2021, 1:53 p.m. UTC
Hi!

The following patch quiets
../../../libgfortran/generated/in_pack_r17.c:35:1: warning: no previous prototype for ‘internal_pack_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/in_pack_c17.c:35:1: warning: no previous prototype for ‘internal_pack_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/in_unpack_r17.c:33:1: warning: no previous prototype for ‘internal_unpack_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/in_unpack_c17.c:33:1: warning: no previous prototype for ‘internal_unpack_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/pack_r17.c:73:1: warning: no previous prototype for ‘pack_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/pack_c17.c:73:1: warning: no previous prototype for ‘pack_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/unpack_r17.c:34:1: warning: no previous prototype for ‘unpack0_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/unpack_r17.c:178:1: warning: no previous prototype for ‘unpack1_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/unpack_c17.c:34:1: warning: no previous prototype for ‘unpack0_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/unpack_c17.c:178:1: warning: no previous prototype for ‘unpack1_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/spread_r17.c:34:1: warning: no previous prototype for ‘spread_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/spread_r17.c:230:1: warning: no previous prototype for ‘spread_scalar_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/spread_c17.c:34:1: warning: no previous prototype for ‘spread_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/spread_c17.c:230:1: warning: no previous prototype for ‘spread_scalar_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift0_r17.c:33:1: warning: no previous prototype for ‘cshift0_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift0_c17.c:33:1: warning: no previous prototype for ‘cshift0_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_4_r17.c:32:1: warning: no previous prototype for ‘cshift1_4_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_4_c17.c:32:1: warning: no previous prototype for ‘cshift1_4_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_8_r17.c:32:1: warning: no previous prototype for ‘cshift1_8_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_8_c17.c:32:1: warning: no previous prototype for ‘cshift1_8_c17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_16_r17.c:32:1: warning: no previous prototype for ‘cshift1_16_r17’ [-Wmissing-prototypes]
../../../libgfortran/generated/cshift1_16_c17.c:32:1: warning: no previous prototype for ‘cshift1_16_c17’ [-Wmissing-prototypes]
warnings during libgfortran build and exports the new entrypoints.
Note, not all of them, clearly e.g. there are fewer *_r17* entrypoints than
*_r16* entrypoints, so more work is needed.

Ok for power-ieee128 branch?

2021-12-31  Jakub Jelinek  <jakub@redhat.com>

	* libgfortran.h (internal_pack_r17, internal_pack_c17,
	internal_unpack_r17, internal_unpack_c17, pack_r17, pack_c17,
	unpack0_r17, unpack0_c17, unpack1_r17, unpack1_c17, spread_r17,
	spread_c17, spread_scalar_r17, spread_scalar_c17, cshift0_r17,
	cshift0_c17, cshift1_4_r17, cshift1_8_r17, cshift1_16_r17,
	cshift1_4_c17, cshift1_8_c17, cshift1_16_c17): Declare.
	* gfortran.map (GFORTRAN_12): Export *_r17 and *_c17.


	Jakub

Comments

Thomas Koenig Dec. 31, 2021, 3:38 p.m. UTC | #1
Hi Jakub,

> Ok for power-ieee128 branch?

OK. Thanks for stepping up!  I am a little distracted right now, but
I think I will also continue working on this for a bit.

Best regards

	Thomas
diff mbox series

Patch

--- libgfortran/libgfortran.h
+++ libgfortran/libgfortran.h
@@ -968,6 +968,11 @@  GFC_REAL_16 *internal_pack_r16 (gfc_array_r16 *);
 internal_proto(internal_pack_r16);
 #endif
 
+#if defined HAVE_GFC_REAL_17
+GFC_REAL_17 *internal_pack_r17 (gfc_array_r17 *);
+internal_proto(internal_pack_r17);
+#endif
+
 GFC_COMPLEX_4 *internal_pack_c4 (gfc_array_c4 *);
 internal_proto(internal_pack_c4);
 
@@ -984,6 +989,11 @@  GFC_COMPLEX_16 *internal_pack_c16 (gfc_array_c16 *);
 internal_proto(internal_pack_c16);
 #endif
 
+#if defined HAVE_GFC_COMPLEX_17
+GFC_COMPLEX_17 *internal_pack_c17 (gfc_array_c17 *);
+internal_proto(internal_pack_c17);
+#endif
+
 extern void internal_unpack_1 (gfc_array_i1 *, const GFC_INTEGER_1 *);
 internal_proto(internal_unpack_1);
 
@@ -1017,6 +1027,11 @@  extern void internal_unpack_r16 (gfc_array_r16 *, const GFC_REAL_16 *);
 internal_proto(internal_unpack_r16);
 #endif
 
+#if defined HAVE_GFC_REAL_17
+extern void internal_unpack_r17 (gfc_array_r17 *, const GFC_REAL_17 *);
+internal_proto(internal_unpack_r17);
+#endif
+
 extern void internal_unpack_c4 (gfc_array_c4 *, const GFC_COMPLEX_4 *);
 internal_proto(internal_unpack_c4);
 
@@ -1033,6 +1048,11 @@  extern void internal_unpack_c16 (gfc_array_c16 *, const GFC_COMPLEX_16 *);
 internal_proto(internal_unpack_c16);
 #endif
 
+#if defined HAVE_GFC_COMPLEX_17
+extern void internal_unpack_c17 (gfc_array_c17 *, const GFC_COMPLEX_17 *);
+internal_proto(internal_unpack_c17);
+#endif
+
 /* Internal auxiliary functions for the pack intrinsic.  */
 
 extern void pack_i1 (gfc_array_i1 *, const gfc_array_i1 *,
@@ -1077,6 +1097,12 @@  extern void pack_r16 (gfc_array_r16 *, const gfc_array_r16 *,
 internal_proto(pack_r16);
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+extern void pack_r17 (gfc_array_r17 *, const gfc_array_r17 *,
+		     const gfc_array_l1 *, const gfc_array_r17 *);
+internal_proto(pack_r17);
+#endif
+
 extern void pack_c4 (gfc_array_c4 *, const gfc_array_c4 *,
 		     const gfc_array_l1 *, const gfc_array_c4 *);
 internal_proto(pack_c4);
@@ -1097,6 +1123,12 @@  extern void pack_c16 (gfc_array_c16 *, const gfc_array_c16 *,
 internal_proto(pack_c16);
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+extern void pack_c17 (gfc_array_c17 *, const gfc_array_c17 *,
+		     const gfc_array_l1 *, const gfc_array_c17 *);
+internal_proto(pack_c17);
+#endif
+
 /* Internal auxiliary functions for the unpack intrinsic.  */
 
 extern void unpack0_i1 (gfc_array_i1 *, const gfc_array_i1 *,
@@ -1147,6 +1179,14 @@  internal_proto(unpack0_r16);
 
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+
+extern void unpack0_r17 (gfc_array_r17 *, const gfc_array_r17 *,
+			 const gfc_array_l1 *, const GFC_REAL_17 *);
+internal_proto(unpack0_r17);
+
+#endif
+
 extern void unpack0_c4 (gfc_array_c4 *, const gfc_array_c4 *,
 			const gfc_array_l1 *, const GFC_COMPLEX_4 *);
 internal_proto(unpack0_c4);
@@ -1171,6 +1211,14 @@  internal_proto(unpack0_c16);
 
 #endif
 
+#ifdef HAVE_GFC_COMPLEX_17
+
+extern void unpack0_c17 (gfc_array_c17 *, const gfc_array_c17 *,
+			 const gfc_array_l1 *, const GFC_COMPLEX_17 *);
+internal_proto(unpack0_c17);
+
+#endif
+
 extern void unpack1_i1 (gfc_array_i1 *, const gfc_array_i1 *,
 			const gfc_array_l1 *, const gfc_array_i1 *);
 internal_proto(unpack1_i1);
@@ -1213,6 +1261,12 @@  extern void unpack1_r16 (gfc_array_r16 *, const gfc_array_r16 *,
 internal_proto(unpack1_r16);
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+extern void unpack1_r17 (gfc_array_r17 *, const gfc_array_r17 *,
+			 const gfc_array_l1 *, const gfc_array_r17 *);
+internal_proto(unpack1_r17);
+#endif
+
 extern void unpack1_c4 (gfc_array_c4 *, const gfc_array_c4 *,
 			const gfc_array_l1 *, const gfc_array_c4 *);
 internal_proto(unpack1_c4);
@@ -1233,6 +1287,12 @@  extern void unpack1_c16 (gfc_array_c16 *, const gfc_array_c16 *,
 internal_proto(unpack1_c16);
 #endif
 
+#ifdef HAVE_GFC_COMPLEX_17
+extern void unpack1_c17 (gfc_array_c17 *, const gfc_array_c17 *,
+			 const gfc_array_l1 *, const gfc_array_c17 *);
+internal_proto(unpack1_c17);
+#endif
+
 /* Helper functions for spread.  */
 
 extern void spread_i1 (gfc_array_i1 *, const gfc_array_i1 *,
@@ -1280,6 +1340,13 @@  internal_proto(spread_r16);
 
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+extern void spread_r17 (gfc_array_r17 *, const gfc_array_r17 *,
+		       const index_type, const index_type);
+internal_proto(spread_r17);
+
+#endif
+
 extern void spread_c4 (gfc_array_c4 *, const gfc_array_c4 *,
 		       const index_type, const index_type);
 internal_proto(spread_c4);
@@ -1302,6 +1369,13 @@  internal_proto(spread_c16);
 
 #endif
 
+#ifdef HAVE_GFC_COMPLEX_17
+extern void spread_c17 (gfc_array_c17 *, const gfc_array_c17 *,
+		       const index_type, const index_type);
+internal_proto(spread_c17);
+
+#endif
+
 extern void spread_scalar_i1 (gfc_array_i1 *, const GFC_INTEGER_1 *,
 			      const index_type, const index_type);
 internal_proto(spread_scalar_i1);
@@ -1347,6 +1421,13 @@  internal_proto(spread_scalar_r16);
 
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+extern void spread_scalar_r17 (gfc_array_r17 *, const GFC_REAL_17 *,
+			       const index_type, const index_type);
+internal_proto(spread_scalar_r17);
+
+#endif
+
 extern void spread_scalar_c4 (gfc_array_c4 *, const GFC_COMPLEX_4 *,
 			      const index_type, const index_type);
 internal_proto(spread_scalar_c4);
@@ -1369,6 +1450,13 @@  internal_proto(spread_scalar_c16);
 
 #endif
 
+#ifdef HAVE_GFC_COMPLEX_17
+extern void spread_scalar_c17 (gfc_array_c17 *, const GFC_COMPLEX_17 *,
+			       const index_type, const index_type);
+internal_proto(spread_scalar_c17);
+
+#endif
+
 /* string_intrinsics.c */
 
 extern int compare_string (gfc_charlen_type, const char *,
@@ -1460,6 +1548,11 @@  void cshift0_r16 (gfc_array_r16 *, const gfc_array_r16 *, ptrdiff_t, int);
 internal_proto(cshift0_r16);
 #endif
 
+#ifdef HAVE_GFC_REAL_17
+void cshift0_r17 (gfc_array_r17 *, const gfc_array_r17 *, ptrdiff_t, int);
+internal_proto(cshift0_r17);
+#endif
+
 void cshift0_c4 (gfc_array_c4 *, const gfc_array_c4 *, ptrdiff_t, int);
 internal_proto(cshift0_c4);
 
@@ -1476,6 +1569,11 @@  void cshift0_c16 (gfc_array_c16 *, const gfc_array_c16 *, ptrdiff_t, int);
 internal_proto(cshift0_c16);
 #endif
 
+#ifdef HAVE_GFC_COMPLEX_17
+void cshift0_c17 (gfc_array_c17 *, const gfc_array_c17 *, ptrdiff_t, int);
+internal_proto(cshift0_c17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_INTEGER_1)
 void cshift1_4_i1 (gfc_array_i1 * const restrict,
 	const gfc_array_i1 * const restrict,
@@ -1628,6 +1726,14 @@  void cshift1_4_r16 (gfc_array_r16 * const restrict,
 internal_proto(cshift1_4_r16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_REAL_17)
+void cshift1_4_r17 (gfc_array_r17 * const restrict,
+        const gfc_array_r17 * const restrict,
+        const gfc_array_i4 * const restrict,
+        const GFC_INTEGER_4 * const restrict);
+internal_proto(cshift1_4_r17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_REAL_4)
 void cshift1_8_r4 (gfc_array_r4 * const restrict,
         const gfc_array_r4 * const restrict,
@@ -1660,6 +1766,14 @@  void cshift1_8_r16 (gfc_array_r16 * const restrict,
 internal_proto(cshift1_8_r16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_REAL_17)
+void cshift1_8_r17 (gfc_array_r17 * const restrict,
+        const gfc_array_r17 * const restrict,
+        const gfc_array_i8 * const restrict,
+        const GFC_INTEGER_8 * const restrict);
+internal_proto(cshift1_8_r17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_REAL_4)
 void cshift1_16_r4 (gfc_array_r4 * const restrict,
         const gfc_array_r4 * const restrict,
@@ -1692,6 +1806,14 @@  void cshift1_16_r16 (gfc_array_r16 * const restrict,
 internal_proto(cshift1_16_r16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_REAL_17)
+void cshift1_16_r17 (gfc_array_r17 * const restrict,
+        const gfc_array_r17 * const restrict,
+        const gfc_array_i16 * const restrict,
+        const GFC_INTEGER_16 * const restrict);
+internal_proto(cshift1_16_r17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_COMPLEX_4)
 void cshift1_4_c4 (gfc_array_c4 * const restrict,
         const gfc_array_c4 * const restrict,
@@ -1724,6 +1846,14 @@  void cshift1_4_c16 (gfc_array_c16 * const restrict,
 internal_proto(cshift1_4_c16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_4) && defined (HAVE_GFC_COMPLEX_17)
+void cshift1_4_c17 (gfc_array_c17 * const restrict,
+        const gfc_array_c17 * const restrict,
+        const gfc_array_i4 * const restrict,
+        const GFC_INTEGER_4 * const restrict);
+internal_proto(cshift1_4_c17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_COMPLEX_4)
 void cshift1_8_c4 (gfc_array_c4 * const restrict,
         const gfc_array_c4 * const restrict,
@@ -1756,6 +1886,14 @@  void cshift1_8_c16 (gfc_array_c16 * const restrict,
 internal_proto(cshift1_8_c16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_8) && defined (HAVE_GFC_COMPLEX_17)
+void cshift1_8_c17 (gfc_array_c17 * const restrict,
+        const gfc_array_c17 * const restrict,
+        const gfc_array_i8 * const restrict,
+        const GFC_INTEGER_8 * const restrict);
+internal_proto(cshift1_8_c17);
+#endif
+
 #if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_COMPLEX_4)
 void cshift1_16_c4 (gfc_array_c4 * const restrict,
         const gfc_array_c4 * const restrict,
@@ -1788,6 +1926,14 @@  void cshift1_16_c16 (gfc_array_c16 * const restrict,
 internal_proto(cshift1_16_c16);
 #endif
 
+#if defined (HAVE_GFC_INTEGER_16) && defined (HAVE_GFC_COMPLEX_17)
+void cshift1_16_c17 (gfc_array_c17 * const restrict,
+        const gfc_array_c17 * const restrict,
+        const gfc_array_i16 * const restrict,
+        const GFC_INTEGER_16 * const restrict);
+internal_proto(cshift1_16_c17);
+#endif
+
 /* Prototypes for the POWER __ieee128 functions.  */
 #ifdef POWER_IEEE128
 extern __float128 __acoshieee128 (__float128) __attribute__ ((__nothrow__, __leaf__));
--- libgfortran/gfortran.map
+++ libgfortran/gfortran.map
@@ -1633,4 +1633,119 @@  GFORTRAN_10.2 {
 GFORTRAN_12 {
   global:
   _gfortran_caf_random_init;
+  _gfortran_arandom_r17;
+  _gfortran_bessel_jn_r17;
+  _gfortran_bessel_yn_r17;
+  _gfortran_cosd_r17;
+  _gfortran_erfc_scaled_r17;
+  _gfortran_findloc0_r17;
+  _gfortran_findloc1_r17;
+  _gfortran_matmul_r17;
+  _gfortran_maxloc0_16_r17;
+  _gfortran_maxloc0_4_r17;
+  _gfortran_maxloc0_8_r17;
+  _gfortran_maxloc1_16_r17;
+  _gfortran_maxloc1_4_r17;
+  _gfortran_maxloc1_8_r17;
+  _gfortran_maxval_r17;
+  _gfortran_mfindloc0_r17;
+  _gfortran_mfindloc1_r17;
+  _gfortran_minloc0_16_r17;
+  _gfortran_minloc0_4_r17;
+  _gfortran_minloc0_8_r17;
+  _gfortran_minloc1_16_r17;
+  _gfortran_minloc1_4_r17;
+  _gfortran_minloc1_8_r17;
+  _gfortran_minval_r17;
+  _gfortran_mmaxloc0_16_r17;
+  _gfortran_mmaxloc0_4_r17;
+  _gfortran_mmaxloc0_8_r17;
+  _gfortran_mmaxloc1_16_r17;
+  _gfortran_mmaxloc1_4_r17;
+  _gfortran_mmaxloc1_8_r17;
+  _gfortran_mmaxval_r17;
+  _gfortran_mminloc0_16_r17;
+  _gfortran_mminloc0_4_r17;
+  _gfortran_mminloc0_8_r17;
+  _gfortran_mminloc1_16_r17;
+  _gfortran_mminloc1_4_r17;
+  _gfortran_mminloc1_8_r17;
+  _gfortran_mminval_r17;
+  _gfortran_mproduct_r17;
+  _gfortran_msum_r17;
+  _gfortran_norm2_r17;
+  _gfortran_pow_r17_i16;
+  _gfortran_pow_r17_i4;
+  _gfortran_pow_r17_i8;
+  _gfortran_product_r17;
+  _gfortran_random_r17;
+  _gfortran_reshape_r17;
+  _gfortran_sfindloc0_r17;
+  _gfortran_sfindloc1_r17;
+  _gfortran_sind_r17;
+  _gfortran_smaxloc0_16_r17;
+  _gfortran_smaxloc0_4_r17;
+  _gfortran_smaxloc0_8_r17;
+  _gfortran_smaxloc1_16_r17;
+  _gfortran_smaxloc1_4_r17;
+  _gfortran_smaxloc1_8_r17;
+  _gfortran_smaxval_r17;
+  _gfortran_sminloc0_16_r17;
+  _gfortran_sminloc0_4_r17;
+  _gfortran_sminloc0_8_r17;
+  _gfortran_sminloc1_16_r17;
+  _gfortran_sminloc1_4_r17;
+  _gfortran_sminloc1_8_r17;
+  _gfortran_sminval_r17;
+  _gfortran_specific__abs_r17;
+  _gfortran_specific__acosh_r17;
+  _gfortran_specific__acos_r17;
+  _gfortran_specific__aint_r17;
+  _gfortran_specific__anint_r17;
+  _gfortran_specific__asinh_r17;
+  _gfortran_specific__asin_r17;
+  _gfortran_specific__atan2_r17;
+  _gfortran_specific__atanh_r17;
+  _gfortran_specific__atan_r17;
+  _gfortran_specific__cosh_r17;
+  _gfortran_specific__cos_r17;
+  _gfortran_specific__dim_r17;
+  _gfortran_specific__exp_r17;
+  _gfortran_specific__log10_r17;
+  _gfortran_specific__log_r17;
+  _gfortran_specific__mod_r17;
+  _gfortran_specific__sign_r17;
+  _gfortran_specific__sinh_r17;
+  _gfortran_specific__sin_r17;
+  _gfortran_specific__sqrt_r17;
+  _gfortran_specific__tanh_r17;
+  _gfortran_specific__tan_r17;
+  _gfortran_sproduct_r17;
+  _gfortran_ssum_r17;
+  _gfortran_sum_r17;
+  _gfortran_tand_r17;
+  _gfortran_findloc0_c17;
+  _gfortran_findloc1_c17;
+  _gfortran_matmul_c17;
+  _gfortran_mfindloc0_c17;
+  _gfortran_mfindloc1_c17;
+  _gfortran_mproduct_c17;
+  _gfortran_msum_c17;
+  _gfortran_pow_c17_i16;
+  _gfortran_pow_c17_i4;
+  _gfortran_pow_c17_i8;
+  _gfortran_product_c17;
+  _gfortran_reshape_c17;
+  _gfortran_sfindloc0_c17;
+  _gfortran_sfindloc1_c17;
+  _gfortran_specific__abs_c17;
+  _gfortran_specific__aimag_c17;
+  _gfortran_specific__cos_c17;
+  _gfortran_specific__exp_c17;
+  _gfortran_specific__log_c17;
+  _gfortran_specific__sin_c17;
+  _gfortran_specific__sqrt_c17;
+  _gfortran_sproduct_c17;
+  _gfortran_ssum_c17;
+  _gfortran_sum_c17;
 } GFORTRAN_10.2;