aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorKwok Cheung Yeung <kcy@codesourcery.com>2022-09-09 13:10:07 +0000
committerKwok Cheung Yeung <kcy@codesourcery.com>2022-09-09 13:10:07 +0000
commiteff73c104a3db882f3bc7f567f322e40470c7571 (patch)
treee4f565ec2874b77b22fa9e5166a5f2b1cf3d895c /gcc/fortran
parenta8b0b13da7379feb31950a9d2ad74b98a29c547f (diff)
downloadgcc-eff73c104a3db882f3bc7f567f322e40470c7571.zip
gcc-eff73c104a3db882f3bc7f567f322e40470c7571.tar.gz
gcc-eff73c104a3db882f3bc7f567f322e40470c7571.tar.bz2
amdgcn: Add support for additional natively supported floating-point operations
This adds support for the following natively supported floating-point operations, in scalar and vectorized modes: floor, ceil, exp2*, log2*, sin*, cos*, ldexp, frexp * These operations are single-precision float only and are only active if unsafe_math_optimizations are enabled (due to potential numerical precision issues). 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP, FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins. * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype. * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG, MATH_UNOP_TRIG): New iterators. (math_unop): New attributes. (<math_unop><mode>2, <math_unop><mode>2<exec>, <math_unop><mode>2, <math_unop><mode>2<exec>, *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn, ldexp<mode>3, ldexp<mode>3<exec>, frexp<mode>_exp2, frexp<mode>_mant2, frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions. (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders. * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of dconst1over2pi. (gcn_dconst1over2pi): New. (gcn_builtin_type_index): Add entry for v64df type. (v64df_type_node): New. (gcn_init_builtin_types): Initialize v64df_type_node. (gcn_expand_builtin_1): Expand new builtins to instructions. (print_operand): Fix assembler output for 1/(2*PI) constant. * config/gcn/gcn.md (unspec): Add new entries.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions