diff options
author | Kong Lingling <lingling.kong@intel.com> | 2023-01-18 15:51:23 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2023-12-07 09:31:14 +0800 |
commit | 57fdb5c2440a8b9d8d0b2dd8be866b6ae012a788 (patch) | |
tree | 5a51a0b1b31d5d2e895579da497f28534d9e44f2 /gcc/expr.cc | |
parent | c601744469390f5c66075de1cead46ed0d5c7a5d (diff) | |
download | gcc-57fdb5c2440a8b9d8d0b2dd8be866b6ae012a788.zip gcc-57fdb5c2440a8b9d8d0b2dd8be866b6ae012a788.tar.gz gcc-57fdb5c2440a8b9d8d0b2dd8be866b6ae012a788.tar.bz2 |
[APX NDD] Support APX NDD for sbb insn
Similar to *add<dwi>3_doubleword, operands[1] may not equal to operands[0] so
extra move and earlyclobber are required.
gcc/ChangeLog:
* config/i386/i386.md (*sub<dwi>3_doubleword): Add new alternative for
NDD, adopt '&' modifier to NDD dest and emit move when operands[0] not
equal to operands[1].
(*sub<dwi>3_doubleword_zext): Likewise.
(*subv<dwi>4_doubleword): Likewise.
(*subv<dwi>4_doubleword_1): Likewise.
(*subv<mode>4_overflow_1): Add NDD alternatives and adjust output
templates.
(*subv<mode>4_overflow_2): Likewise.
(@sub<mode>3_carry): Likewise.
(*addsi3_carry_zext_0r): Likewise, and use nonimmediate_operand for
operands[1] to accept memory input for NDD alternative.
(*subsi3_carry_zext): Likewise.
(subborrow<mode>): Parse TARGET_APX_NDD to ix86_binary_operator_ok.
(subborrow<mode>_0): Likewise.
(*sub<mode>3_eq): Likewise.
(*sub<mode>3_ne): Likewise.
(*sub<mode>3_eq_1): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/i386/apx-ndd-sbb.c: New test.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions