diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2023-11-07 16:28:28 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2023-12-07 09:31:15 +0800 |
commit | 5fb807e1e8e68c4ac291f051e60942404ff0c800 (patch) | |
tree | 76b3d7b8699bcbf48d021081ac2a272cccde2c3e /gcc/expr.cc | |
parent | d1dea413ef3761335bd741263a61e0f31e67b7d6 (diff) | |
download | gcc-5fb807e1e8e68c4ac291f051e60942404ff0c800.zip gcc-5fb807e1e8e68c4ac291f051e60942404ff0c800.tar.gz gcc-5fb807e1e8e68c4ac291f051e60942404ff0c800.tar.bz2 |
[APX NDD] Support APX NDD for shld/shrd insns
For shld/shrd insns, the old pattern use match_dup 0 as its shift src and use
+r*m as its constraint. To support NDD we added new define_insns to handle NDD
form pattern with extra input and dest operand to be fixed in register.
gcc/ChangeLog:
* config/i386/i386.md (x86_64_shld_ndd): New define_insn.
(x86_64_shld_ndd_1): Likewise.
(*x86_64_shld_ndd_2): Likewise.
(x86_shld_ndd): Likewise.
(x86_shld_ndd_1): Likewise.
(*x86_shld_ndd_2): Likewise.
(x86_64_shrd_ndd): Likewise.
(x86_64_shrd_ndd_1): Likewise.
(*x86_64_shrd_ndd_2): Likewise.
(x86_shrd_ndd): Likewise.
(x86_shrd_ndd_1): Likewise.
(*x86_shrd_ndd_2): Likewise.
(*x86_64_shld_shrd_1_nozext): Adjust codegen under TARGET_APX_NDD.
(*x86_shld_shrd_1_nozext): Likewise.
(*x86_64_shrd_shld_1_nozext): Likewise.
(*x86_shrd_shld_1_nozext): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/i386/apx-ndd-shld-shrd.c: New test.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions