2022-01-05 Michael Meissner <meissner@linux.ibm.com>
gcc/
* gcc/config/rs6000/rs6000-modes.h: Delete.
* config/rs6000/rs6000-modes.def (rs6000-modes.h): Remove inclusion.
(IFmode): Rework set up to use FRACTIONAL_FLOAT_MODE_NO_WIDEN. Use 128
as the precision.
(KFmode): Likewise.
(TFmode): Use FRACTIONAL_FLOAT_MODE, and not
FRACTIONAL_FLOAT_MODE_NO_WIDEN. Set the precision to 128.
* config/rs6000/rs6000.cc (rs6000_option_override_internal): Use 128
bits as the precision for 128-bit float, instead of special values for
the 3 different 128-bit FP modes.
* config/rs6000/rs6000.h (rs6000-modes.h): Remove inclusion.
* config/rs6000/t-rs6000 (TM_H): Don't add rs6000-modes.h.
* genmodes.cc (struct mode_data): Add no widen field.
(blank_mode): Likewise.
(FRACTIONAL_FLOAT_MODE): Add support for NO_WIDEN capability.
(FRACTIONAL_FLOAT_MODE_NO_WIDEN): New macro.
(make_float_mode): Add support for NO_WIDEN capability.
(emit_mode_wider): Likewise.
* machmode.def (FRACTIONAL_FLOAT_MODE_NO_WIDEN): Document.