Hi,
Following up the discussion of V2 patches in
https://gcc.gnu.org/pipermail/gcc-patches/2023-December/639368.html,
this patch series add early clobber for all TImode NDD alternatives
to avoid any potential overlapping between dest register and src
register/memory. Also use get_attr_isa (insn) == ISA_APX_NDD instead of
checking alternative at asm output stage.
Bootstrapped & regtested on x86_64-pc-linux-gnu{-m32,} and sde.
Ok for master?
Hongyu Wang (7):
[APX NDD] Disable seg_prefixed memory usage for NDD add
[APX NDD] Support APX NDD for left shift insns
[APX NDD] Support APX NDD for right shift insns
[APX NDD] Support APX NDD for rotate insns
[APX NDD] Support APX NDD for shld/shrd insns
[APX NDD] Support APX NDD for cmove insns
[APX NDD] Support TImode shift for NDD
Kong Lingling (9):
[APX NDD] Support Intel APX NDD for legacy add insn
[APX NDD] Support APX NDD for optimization patterns of add
[APX NDD] Support APX NDD for adc insns
[APX NDD] Support APX NDD for sub insns
[APX NDD] Support APX NDD for sbb insn
[APX NDD] Support APX NDD for neg insn
[APX NDD] Support APX NDD for not insn
[APX NDD] Support APX NDD for and insn
[APX NDD] Support APX NDD for or/xor insn
gcc/config/i386/constraints.md | 5 +
gcc/config/i386/i386-expand.cc | 164 +-
gcc/config/i386/i386-options.cc | 2 +
gcc/config/i386/i386-protos.h | 16 +-
gcc/config/i386/i386.cc | 30 +-
gcc/config/i386/i386.md | 2325 +++++++++++------
gcc/testsuite/gcc.target/i386/apx-ndd-adc.c | 15 +
gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c | 16 +
gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c | 6 +
.../gcc.target/i386/apx-ndd-shld-shrd.c | 24 +
.../gcc.target/i386/apx-ndd-ti-shift.c | 91 +
gcc/testsuite/gcc.target/i386/apx-ndd.c | 202 ++
12 files changed, 2141 insertions(+), 755 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-adc.c
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-sbb.c
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-shld-shrd.c
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd-ti-shift.c
create mode 100644 gcc/testsuite/gcc.target/i386/apx-ndd.c
--
2.31.1