aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.cc
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2024-06-20 12:41:13 +0800
committerliuhongt <hongtao.liu@intel.com>2024-07-01 13:20:09 +0800
commit2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb (patch)
tree64b99ebd17b3b4da06604915e971efdb81ac1279 /gcc/tree-vect-loop.cc
parente94e6ee495d95f29355bbc017214228a5e367638 (diff)
downloadgcc-2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb.zip
gcc-2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb.tar.gz
gcc-2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb.tar.bz2
Optimize a < 0 ? -1 : 0 to (signed)a >> 31.
Try to optimize x < 0 ? -1 : 0 into (signed) x >> 31 and x < 0 ? 1 : 0 into (unsigned) x >> 31. Add define_insn_and_split for the optimization did in ix86_expand_int_vcond. gcc/ChangeLog: PR target/115517 * config/i386/sse.md ("*ashr<mode>3_1"): New define_insn_and_split. (*avx512_ashr<mode>3_1): Ditto. (*avx2_lshr<mode>3_1): Ditto. (*avx2_lshr<mode>3_2): Ditto and add 2 combine splitter after it. * config/i386/mmx.md (mmxscalarsize): New mode attribute. (*mmw_ashr<mode>3_1): New define_insn_and_split. ("mmx_<insn><mode>3): Add a combine spiltter after it. (*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a combine splitter after it. gcc/testsuite/ChangeLog: * gcc.target/i386/pr111023-2.c: Adjust testcase. * gcc.target/i386/vect-div-1.c: Ditto.
Diffstat (limited to 'gcc/tree-vect-loop.cc')
0 files changed, 0 insertions, 0 deletions