[gcc r15-649] Fix oversight in latest change to can_mult_highpart_p
Eric Botcazou
ebotcazou@gcc.gnu.org
Sun May 19 09:40:14 GMT 2024
https://gcc.gnu.org/g:3db8dd4139a7a5ce941684f1fc05ee0652e35544
commit r15-649-g3db8dd4139a7a5ce941684f1fc05ee0652e35544
Author: Eric Botcazou <ebotcazou@adacore.com>
Date: Sun May 19 11:38:40 2024 +0200
Fix oversight in latest change to can_mult_highpart_p
gcc/
* optabs-query.cc (can_mult_highpart_p): Test for the existence of
a wider mode instead of requiring it.
Diff:
---
gcc/optabs-query.cc | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/gcc/optabs-query.cc b/gcc/optabs-query.cc
index de145be7075f..5149de57468d 100644
--- a/gcc/optabs-query.cc
+++ b/gcc/optabs-query.cc
@@ -510,17 +510,16 @@ int
can_mult_highpart_p (machine_mode mode, bool uns_p)
{
optab op;
- scalar_int_mode int_mode;
+ scalar_int_mode int_mode, wider_mode;
op = uns_p ? umul_highpart_optab : smul_highpart_optab;
if (optab_handler (op, mode) != CODE_FOR_nothing)
return 1;
/* If the mode is integral, synth from widening or larger operations. */
- if (is_a <scalar_int_mode> (mode, &int_mode))
+ if (is_a <scalar_int_mode> (mode, &int_mode)
+ && GET_MODE_WIDER_MODE (int_mode).exists (&wider_mode))
{
- scalar_int_mode wider_mode = GET_MODE_WIDER_MODE (int_mode).require ();
-
op = uns_p ? umul_widen_optab : smul_widen_optab;
if (convert_optab_handler (op, wider_mode, mode) != CODE_FOR_nothing)
return 2;
More information about the Gcc-cvs
mailing list