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