Changes from v4:

1. Remove option "-fwrapv" from gcc.dg/torture/bitint-84.c, which
   came from its origin gcc.dg/torture/bitint-64.c, but interferes
   with the result.

2. Other fixes from Jakub's review on v4.  In particular, BEXTC was
   modified to not rely on full limb comparision of the partial limbs.

This series was bootstrapped and tested on x86_64-linux-gnu and
loongarch64-linux-gnu.

Yang Yujie (9):
  bitint: Allow mode promotion of _BitInt types
  expand: Reduce unneeded _BitInt extensions
  bitint: Allow unused bits when testing extended _BitInt ABIs
  bitint: Make sure BEXTC checks extension when optimized
  bitint: Avoid extending ABI-extended large/huge _BitInts on load
  bitint: Zero-extend the result of a signed->unsigned widening cast
  bitint: Do not optimize away conversion to _BitInt before a VCE
  LoongArch: Prioritize target-specific makefile fragments
  LoongArch: Add support for _BitInt [PR117599]

 gcc/config/loongarch/loongarch.cc             | 35 +++++++-
 gcc/config/loongarch/loongarch.h              |  4 +-
 gcc/explow.cc                                 | 24 ++++++
 gcc/expr.cc                                   | 12 +++
 gcc/expr.h                                    |  4 +
 gcc/function.cc                               |  4 +
 gcc/gimple-lower-bitint.cc                    | 46 +++++++++--
 gcc/match.pd                                  | 19 ++++-
 gcc/testsuite/gcc.dg/bitintext.h              | 56 +++++++++----
 gcc/testsuite/gcc.dg/torture/bitint-83.c      | 52 ++++++++++++
 gcc/testsuite/gcc.dg/torture/bitint-84.c      | 18 +++++
 .../gcc.target/loongarch/bitint-alignments.c  | 58 +++++++++++++
 .../gcc.target/loongarch/bitint-args.c        | 81 +++++++++++++++++++
 .../gcc.target/loongarch/bitint-sizes.c       | 60 ++++++++++++++
 libgcc/config.host                            | 31 +++----
 libgcc/config/loongarch/libgcc-loongarch.ver  | 28 +++++++
 libgcc/config/loongarch/t-loongarch           |  2 +
 libgcc/config/loongarch/t-softfp-tf           |  1 +
 18 files changed, 488 insertions(+), 47 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/torture/bitint-83.c
 create mode 100644 gcc/testsuite/gcc.dg/torture/bitint-84.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/bitint-alignments.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/bitint-args.c
 create mode 100644 gcc/testsuite/gcc.target/loongarch/bitint-sizes.c
 create mode 100644 libgcc/config/loongarch/libgcc-loongarch.ver

-- 
2.46.0

Reply via email to