aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorHongyu Wang <hongyu.wang@intel.com>2023-11-07 16:28:28 +0800
committerHongyu Wang <hongyu.wang@intel.com>2023-12-07 09:31:15 +0800
commit5fb807e1e8e68c4ac291f051e60942404ff0c800 (patch)
tree76b3d7b8699bcbf48d021081ac2a272cccde2c3e /gcc/expr.cc
parentd1dea413ef3761335bd741263a61e0f31e67b7d6 (diff)
downloadgcc-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