ChangeLog 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. 2022-01-26 Francois-Xavier Coudert <fxcoudert@gmail.com>
  2. PR libfortran/104233
  3. * ieee/issignaling_fallback.h: Check GFC_REAL_16_IS_FLOAT128
  4. instead of __FLT128_IS_IEC_60559__.
  5. 2022-01-25 Francois-Xavier Coudert <fxcoudert@gmail.com>
  6. * ieee/issignaling_fallback.h: Fix GCC-specific preprocessor
  7. macros.
  8. 2022-01-25 Jakub Jelinek <jakub@redhat.com>
  9. * ieee/issignaling_fallback.h (__issignalingl): Define for
  10. IBM extended long double are returning __issignaling on the
  11. first double.
  12. 2022-01-25 Francois-Xavier Coudert <fxcoudert@gmail.com>
  13. * ieee/issignaling_fallback.h: fix preprocessor condition.
  14. 2022-01-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
  15. * ieee/issignaling_fallback.h: New file.
  16. * ieee/ieee_helper.c: Include issignaling_fallback.h when target
  17. does not define issignaling macro.
  18. 2022-01-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
  19. * ieee/issignaling_fallback.h: Remove file.
  20. 2022-01-17 Thomas Koenig <tkoenig@gcc.gnu.org>
  21. * runtime/environ.c: Allow for multiple default values so that
  22. separate default specifications for IBM long double format and
  23. endianness are possible.
  24. 2022-01-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
  25. * ieee/issignaling_fallback.h: New file.
  26. 2022-01-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
  27. PR fortran/82207
  28. * mk-kinds-h.sh: Add values for TINY.
  29. * ieee/ieee_arithmetic.F90: Call C helper functions for
  30. IEEE_VALUE.
  31. * ieee/ieee_helper.c: New functions ieee_value_helper_N for each
  32. floating-point type.
  33. 2022-01-14 Jakub Jelinek <jakub@redhat.com>
  34. PR libfortran/104006
  35. * Makefile.am (BUILT_SOURCES): Don't include $(version_dep).
  36. (clean-local): Remove $(version_dep).
  37. * Makefile.in: Regenerated.
  38. 2022-01-13 Jakub Jelinek <jakub@redhat.com>
  39. PR libfortran/104006
  40. * Makefile.am (gfortran.map-sun): Rename target to ...
  41. (gfortran.ver-sun): ... this.
  42. * Makefile.in: Regenerated.
  43. 2022-01-12 Jakub Jelinek <jakub@redhat.com>
  44. * libgfortran.h (POWER_IEEE128): Use __GLIBC_PREREQ in a separate
  45. #if directive inside of #if ... && defined __GLIBC_PREREQ.
  46. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  47. * io/transfer.c (unformatted_read, unformatted_write): When
  48. byteswapping IBM extended real(kind=16), handle it as byteswapping
  49. two real(kind=8) values.
  50. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  51. * runtime/environ.c (R16_IEEE): New macro.
  52. (R16_IBM): New macro.
  53. (next_token): Handle IBM R16 conversion cases.
  54. (push_token): Likewise.
  55. (mark_single): Likewise.
  56. (do_parse): Likewise, initialize endian.
  57. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  58. * Makefile.in: Regenerate.
  59. * io/file_pos.c (unformatted_backspace): Mask off
  60. R16 parts for convert.
  61. * io/inquire.c (inquire_via_unit): Add cases for
  62. R16 parts.
  63. * io/open.c (st_open): Add cases for R16 conversion.
  64. * io/transfer.c (unformatted_read): Adjust for R16 conversions.
  65. (unformatted_write): Likewise.
  66. (us_read): Mask of R16 bits.
  67. (data_transfer_init): Likewiese.
  68. (write_us_marker): Likewise.
  69. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  70. * Makefile.am (AM_FCFLAGS): Add -fbuilding-libgfortran after
  71. -fallow-leading-underscore.
  72. * Makefile.in: Regenerated.
  73. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  74. * libgfortran.h (__copysignieee128, __fmaieee128, __fmodieee128):
  75. Declare.
  76. * intrinsics/trigd.c (COPYSIGN, FMOD, FABS, FMA, SIN, COS, TAN): If
  77. POWER_IEEE128 is defined, define these for kind 17 include.
  78. * intrinsics/trigd_lib.inc (COPYSIGN, FMOD, FABS, FMA, SIN, COS, TAN):
  79. Don't define if COPYSIGN is already defined.
  80. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  81. * libgfortran.h (GFC_REAL_17_INFINITY, GFC_REAL_17_QUIET_NAN): Define.
  82. (__erfcieee128): Declare.
  83. * intrinsics/trigd.c (_gfortran_sind_r17, _gfortran_cosd_r17,
  84. _gfortran_tand_r17): Define for HAVE_GFC_REAL_17.
  85. * intrinsics/random.c (random_r17, arandom_r17, rnumber_17): Define.
  86. * intrinsics/erfc_scaled.c (ERFC_SCALED): Define.
  87. (erfc_scaled_r16): Use ERFC_SCALED macro.
  88. (erfc_scaled_r17): Define.
  89. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  90. * io/read.c (convert_real): Add missing break; for the
  91. HAVE_GFC_REAL_17 case.
  92. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  93. * io/write_float.def (CALCULATE_EXP): If HAVE_GFC_REAL_17, also use
  94. CALCULATE_EXP(17).
  95. (determine_en_precision): Use 17 instead of 16 as first EN_PREC
  96. argument for kind 17.
  97. (get_float_string): Use 17 instead of 16 as first FORMAT_FLOAT
  98. argument for kind 17.
  99. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  100. * libgfortran.h (__acoshieee128, __acosieee128, __asinhieee128,
  101. __asinieee128, __atan2ieee128, __atanhieee128, __atanieee128,
  102. __coshieee128, __cosieee128, __erfieee128, __expieee128,
  103. __fabsieee128, __jnieee128, __log10ieee128, __logieee128,
  104. __powieee128, __sinhieee128, __sinieee128, __sqrtieee128,
  105. __tanhieee128, __tanieee128, __ynieee128): Formatting fixes.
  106. (__strtoieee128, __snprintfieee128): Declare.
  107. * io/io.h (default_width_for_float, default_precision_for_float):
  108. Handle kind == 17.
  109. * io/size_from_kind.c (size_from_real_kind, size_from_complex_kind):
  110. Likewise.
  111. * io/read.c (set_integer, si_max, convert_real, convert_infnan,
  112. read_f): Likewise.
  113. * io/write.c (extract_uint, size_from_kind, set_fnode_default):
  114. Likewise.
  115. * io/write_float.def (DTOA2Q, FDTOA2Q): Define for HAVE_GFC_REAL_17.
  116. (determine_en_precision, get_float_string): Handle kind == 17.
  117. * io/transfer128.c: Use also for HAVE_GFC_REAL_17, but don't drag in
  118. libquadmath if POWER_IEEE128.
  119. * Makefile.am (comma, PREPROCESS): New variables.
  120. (gfortran.ver): New goal.
  121. (version_arg, version_dep): Use gfortran.ver instead of
  122. $(srcdir)/gfortran.map.
  123. (gfortran.map-sun): Depend on and use gfortran.ver instead of
  124. $(srcdir)/gfortran.map.
  125. (BUILT_SOURCES): Add $(version_dep).
  126. * Makefile.in: Regenerated.
  127. * gfortran.map (GFORTRAN_8): Don't export
  128. _gfortran_transfer_complex128, _gfortran_transfer_complex128_write,
  129. _gfortran_transfer_real128 and _gfortran_transfer_real128_write if
  130. HAVE_GFC_REAL_17 is defined.
  131. (GFORTRAN_12): Export those here instead.
  132. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  133. * Makefile.am: Correct files for compilation flags. Add
  134. -D__powerpc64__ for Fortran sources. Get kinds.inc from
  135. grep of kinds.h and kinds-override.h.
  136. * Makefile.in: Regenerate.
  137. * config.h.in: Regenerate.
  138. * configure: Regenerate.
  139. * configure.ac: Add -mno-gnu-attribute to compile flags.
  140. * generated/_abs_c17.F90: Regenerate.
  141. * generated/_abs_r17.F90: Regenerate.
  142. * generated/_acos_r17.F90: Regenerate.
  143. * generated/_acosh_r17.F90: Regenerate.
  144. * generated/_aimag_c17.F90: Regenerate.
  145. * generated/_aint_r17.F90: Regenerate.
  146. * generated/_anint_r17.F90: Regenerate.
  147. * generated/_asin_r17.F90: Regenerate.
  148. * generated/_asinh_r17.F90: Regenerate.
  149. * generated/_atan2_r17.F90: Regenerate.
  150. * generated/_atan_r17.F90: Regenerate.
  151. * generated/_atanh_r17.F90: Regenerate.
  152. * generated/_conjg_c17.F90: Regenerate.
  153. * generated/_cos_c17.F90: Regenerate.
  154. * generated/_cos_r17.F90: Regenerate.
  155. * generated/_cosh_r17.F90: Regenerate.
  156. * generated/_dim_r17.F90: Regenerate.
  157. * generated/_exp_c17.F90: Regenerate.
  158. * generated/_exp_r17.F90: Regenerate.
  159. * generated/_log10_r17.F90: Regenerate.
  160. * generated/_log_c17.F90: Regenerate.
  161. * generated/_log_r17.F90: Regenerate.
  162. * generated/_mod_r17.F90: Regenerate.
  163. * generated/_sign_r17.F90: Regenerate.
  164. * generated/_sin_c17.F90: Regenerate.
  165. * generated/_sin_r17.F90: Regenerate.
  166. * generated/_sinh_r17.F90: Regenerate.
  167. * generated/_sqrt_c17.F90: Regenerate.
  168. * generated/_sqrt_r17.F90: Regenerate.
  169. * generated/_tan_r17.F90: Regenerate.
  170. * generated/_tanh_r17.F90: Regenerate.
  171. * kinds-override.h: Adjust to trunk.
  172. Change condition to single line so it can be grepped.
  173. * m4/specific.m4: Make sure that real=kind16 is used
  174. for _r17.F90 and _c17.F90 files.
  175. * m4/specific2.m4: Likewise.
  176. 2022-01-11 Jakub Jelinek <jakub@redhat.com>
  177. * libgfortran.h (internal_pack_r17, internal_pack_c17,
  178. internal_unpack_r17, internal_unpack_c17, pack_r17, pack_c17,
  179. unpack0_r17, unpack0_c17, unpack1_r17, unpack1_c17, spread_r17,
  180. spread_c17, spread_scalar_r17, spread_scalar_c17, cshift0_r17,
  181. cshift0_c17, cshift1_4_r17, cshift1_8_r17, cshift1_16_r17,
  182. cshift1_4_c17, cshift1_8_c17, cshift1_16_c17): Declare.
  183. * gfortran.map (GFORTRAN_12): Export *_r17 and *_c17.
  184. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  185. * acinclude.m4 (LIBGFOR_CHECK_MATH_IEEE128): New macro.
  186. * configure.ac: Use it.
  187. * config.h.in: Regenerate.
  188. * configure: Regenerate.
  189. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  190. * Makefile.am: Fix pattern substitution for _r17 and _c17.
  191. * Makefile.in: Regenerate.
  192. 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
  193. * Makefile.am: Add _r17 and _c17 files. Build them
  194. with -mabi=ieeelongdouble on POWER.
  195. * Makefile.in: Regenerate.
  196. * configure: Regenerate.
  197. * configure.ac: New flag HAVE_REAL_17.
  198. * kinds-override.h: (HAVE_GFC_REAL_17): New macro.
  199. (HAVE_GFC_COMPLEX_17): New macro.
  200. (GFC_REAL_17_HUGE): New macro.
  201. (GFC_REAL_17_LITERAL_SUFFIX): New macro.
  202. (GFC_REAL_17_LITERAL): New macro.
  203. (GFC_REAL_17_DIGITS): New macro.
  204. (GFC_REAL_17_RADIX): New macro.
  205. * libgfortran.h (POWER_IEEE128): New macro.
  206. (gfc_array_r17): Typedef.
  207. (GFC_DTYPE_REAL_17): New macro.
  208. (GFC_DTYPE_COMPLEX_17): New macro.
  209. (__acoshieee128): Prototype.
  210. (__acosieee128): Prototype.
  211. (__asinhieee128): Prototype.
  212. (__asinieee128): Prototype.
  213. (__atan2ieee128): Prototype.
  214. (__atanhieee128): Prototype.
  215. (__atanieee128): Prototype.
  216. (__coshieee128): Prototype.
  217. (__cosieee128): Prototype.
  218. (__erfieee128): Prototype.
  219. (__expieee128): Prototype.
  220. (__fabsieee128): Prototype.
  221. (__jnieee128): Prototype.
  222. (__log10ieee128): Prototype.
  223. (__logieee128): Prototype.
  224. (__powieee128): Prototype.
  225. (__sinhieee128): Prototype.
  226. (__sinieee128): Prototype.
  227. (__sqrtieee128): Prototype.
  228. (__tanhieee128): Prototype.
  229. (__tanieee128): Prototype.
  230. (__ynieee128): Prototype.
  231. * m4/mtype.m4: Make a bit more readable. Add KIND=17.
  232. * generated/_abs_c17.F90: New file.
  233. * generated/_abs_r17.F90: New file.
  234. * generated/_acos_r17.F90: New file.
  235. * generated/_acosh_r17.F90: New file.
  236. * generated/_aimag_c17.F90: New file.
  237. * generated/_aint_r17.F90: New file.
  238. * generated/_anint_r17.F90: New file.
  239. * generated/_asin_r17.F90: New file.
  240. * generated/_asinh_r17.F90: New file.
  241. * generated/_atan2_r17.F90: New file.
  242. * generated/_atan_r17.F90: New file.
  243. * generated/_atanh_r17.F90: New file.
  244. * generated/_conjg_c17.F90: New file.
  245. * generated/_cos_c17.F90: New file.
  246. * generated/_cos_r17.F90: New file.
  247. * generated/_cosh_r17.F90: New file.
  248. * generated/_dim_r17.F90: New file.
  249. * generated/_exp_c17.F90: New file.
  250. * generated/_exp_r17.F90: New file.
  251. * generated/_log10_r17.F90: New file.
  252. * generated/_log_c17.F90: New file.
  253. * generated/_log_r17.F90: New file.
  254. * generated/_mod_r17.F90: New file.
  255. * generated/_sign_r17.F90: New file.
  256. * generated/_sin_c17.F90: New file.
  257. * generated/_sin_r17.F90: New file.
  258. * generated/_sinh_r17.F90: New file.
  259. * generated/_sqrt_c17.F90: New file.
  260. * generated/_sqrt_r17.F90: New file.
  261. * generated/_tan_r17.F90: New file.
  262. * generated/_tanh_r17.F90: New file.
  263. * generated/bessel_r17.c: New file.
  264. * generated/cshift0_c17.c: New file.
  265. * generated/cshift0_r17.c: New file.
  266. * generated/cshift1_16_c17.c: New file.
  267. * generated/cshift1_16_r17.c: New file.
  268. * generated/cshift1_4_c17.c: New file.
  269. * generated/cshift1_4_r17.c: New file.
  270. * generated/cshift1_8_c17.c: New file.
  271. * generated/cshift1_8_r17.c: New file.
  272. * generated/findloc0_c17.c: New file.
  273. * generated/findloc0_r17.c: New file.
  274. * generated/findloc1_c17.c: New file.
  275. * generated/findloc1_r17.c: New file.
  276. * generated/in_pack_c17.c: New file.
  277. * generated/in_pack_r17.c: New file.
  278. * generated/in_unpack_c17.c: New file.
  279. * generated/in_unpack_r17.c: New file.
  280. * generated/matmul_c17.c: New file.
  281. * generated/matmul_r17.c: New file.
  282. * generated/matmulavx128_c17.c: New file.
  283. * generated/matmulavx128_r17.c: New file.
  284. * generated/maxloc0_16_r17.c: New file.
  285. * generated/maxloc0_4_r17.c: New file.
  286. * generated/maxloc0_8_r17.c: New file.
  287. * generated/maxloc1_16_r17.c: New file.
  288. * generated/maxloc1_4_r17.c: New file.
  289. * generated/maxloc1_8_r17.c: New file.
  290. * generated/maxval_r17.c: New file.
  291. * generated/minloc0_16_r17.c: New file.
  292. * generated/minloc0_4_r17.c: New file.
  293. * generated/minloc0_8_r17.c: New file.
  294. * generated/minloc1_16_r17.c: New file.
  295. * generated/minloc1_4_r17.c: New file.
  296. * generated/minloc1_8_r17.c: New file.
  297. * generated/minval_r17.c: New file.
  298. * generated/norm2_r17.c: New file.
  299. * generated/pack_c17.c: New file.
  300. * generated/pack_r17.c: New file.
  301. * generated/pow_c17_i16.c: New file.
  302. * generated/pow_c17_i4.c: New file.
  303. * generated/pow_c17_i8.c: New file.
  304. * generated/pow_r17_i16.c: New file.
  305. * generated/pow_r17_i4.c: New file.
  306. * generated/pow_r17_i8.c: New file.
  307. * generated/product_c17.c: New file.
  308. * generated/product_r17.c: New file.
  309. * generated/reshape_c17.c: New file.
  310. * generated/reshape_r17.c: New file.
  311. * generated/spread_c17.c: New file.
  312. * generated/spread_r17.c: New file.
  313. * generated/sum_c17.c: New file.
  314. * generated/sum_r17.c: New file.
  315. * generated/unpack_c17.c: New file.
  316. * generated/unpack_r17.c: New file.
  317. * m4/ifunc.m4: New file.
  318. 2022-01-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
  319. PR fortran/82207
  320. * Makefile.am: Pass -fsignaling-nans for IEEE files.
  321. * Makefile.in: Regenerate.
  322. * ieee/ieee_helper.c: Use issignaling macro to recognized
  323. signaling NaNs.
  324. Copyright (C) 2022 Free Software Foundation, Inc.
  325. Copying and distribution of this file, with or without modification,
  326. are permitted in any medium without royalty provided the copyright
  327. notice and this notice are preserved.