From: MITSUNARI Shigeo <[email protected]>

Changes since v5:
- Use GET_MODE_2XWIDER_MODE instead of GET_MODE_WIDER_MODE in [1/2]
  to ensure the widened mode is exactly double the original mode,
  avoiding any in-between modes (suggested by Georg-Johann Lay).
- [2/2] is unchanged from v5.

MITSUNARI Shigeo (2):
  expmed: Optimize 32-bit unsigned division by constants on 64-bit
    targets
  i386: Add BMI2 MULX pattern for highpart-only multiplication

 gcc/config/i386/i386.md                       | 15 +++
 gcc/expmed.cc                                 | 93 +++++++++++++------
 .../gcc.target/i386/bmi2-mulx-highpart-1.c    | 18 ++++
 .../gcc.target/i386/bmi2-mulx-highpart-2.c    | 19 ++++
 gcc/testsuite/gcc.target/i386/mulq-highpart.c | 19 ++++
 5 files changed, 137 insertions(+), 27 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c
 create mode 100644 gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-2.c
 create mode 100644 gcc/testsuite/gcc.target/i386/mulq-highpart.c

-- 
2.43.0

Reply via email to