diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2024-05-08 10:07:56 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2024-05-17 11:45:40 +0200 |
commit | f53f8a859631bef97adba1522a8049a8fce57c1b (patch) | |
tree | cc7bd05030603a58ccf070d26afc73891706eb26 /libcpp | |
parent | b420e0b920613c42f63252aa2478a8315dc37a13 (diff) | |
download | gcc-f53f8a859631bef97adba1522a8049a8fce57c1b.zip gcc-f53f8a859631bef97adba1522a8049a8fce57c1b.tar.gz gcc-f53f8a859631bef97adba1522a8049a8fce57c1b.tar.bz2 |
Add widening expansion of MULT_HIGHPART_EXPR for integral modes
For integral modes the expansion of MULT_HIGHPART_EXPR requires the presence
of an {s,u}mul_highpart optab whereas, for vector modes, widening expansion
is supported. This adds a widening expansion for integral modes too, which
is in fact already implemented in expmed_mult_highpart_optab.
gcc/
* expmed.h (expmed_mult_highpart_optab): Declare.
* expmed.cc (expmed_mult_highpart_optab): Remove static keyword.
Do not assume that OP1 is a constant integer. Fix pasto.
(expmed_mult_highpart): Pass OP1 narrowed to MODE in all the calls
to expmed_mult_highpart_optab.
* optabs-query.cc (can_mult_highpart_p): Use 2 for integer widening
and shift subsequent values accordingly.
* optabs.cc (expand_mult_highpart): Call expmed_mult_highpart_optab
when can_mult_highpart_p returns 2 and adjust to above change.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions