From: Roger Sayle Date: Thu, 16 Jul 2020 10:47:47 +0000 (+0100) Subject: doc: Document TARGET_TRULY_NOOP_TRUNCATION requires trunc?i?i2 patterns. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5abe0d81db068c06ae57b011e1a9d4fd7976ac56;p=gcc.git doc: Document TARGET_TRULY_NOOP_TRUNCATION requires trunc?i?i2 patterns. 2020-07-16 Roger Sayle gcc/ChangeLog: * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that targets that return false, indicating SUBREGs shouldn't be used, also need to provide a trunc?i?i2 optab that performs this truncation. * doc/tm.texi: Regenerate. --- diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 6e7d9dc54a9..41b9e10c856 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -11122,7 +11122,9 @@ This hook returns true if it is safe to ``convert'' a value of @var{inprec} bits to one of @var{outprec} bits (where @var{outprec} is smaller than @var{inprec}) by merely operating on it as if it had only @var{outprec} bits. The default returns true unconditionally, which -is correct for most machines. +is correct for most machines. When @code{TARGET_TRULY_NOOP_TRUNCATION} +returns false, the machine description should provide a @code{trunc} +optab to specify the RTL that performs the required truncation. If @code{TARGET_MODES_TIEABLE_P} returns false for a pair of modes, suboptimal code can result if this hook returns true for the corresponding diff --git a/gcc/target.def b/gcc/target.def index 07059a87caf..f2f314ed89c 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -3148,7 +3148,9 @@ DEFHOOK @var{inprec} bits to one of @var{outprec} bits (where @var{outprec} is\n\ smaller than @var{inprec}) by merely operating on it as if it had only\n\ @var{outprec} bits. The default returns true unconditionally, which\n\ -is correct for most machines.\n\ +is correct for most machines. When @code{TARGET_TRULY_NOOP_TRUNCATION}\n\ +returns false, the machine description should provide a @code{trunc}\n\ +optab to specify the RTL that performs the required truncation.\n\ \n\ If @code{TARGET_MODES_TIEABLE_P} returns false for a pair of modes,\n\ suboptimal code can result if this hook returns true for the corresponding\n\