diff options
author | liuhongt <hongtao.liu@intel.com> | 2024-06-20 12:41:13 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2024-07-01 13:20:09 +0800 |
commit | 2ccdd0f22312a14ac64bf944fdc4f8e7532eb0eb (patch) | |
tree | 64b99ebd17b3b4da06604915e971efdb81ac1279 /gcc/tree-vect-loop.cc | |
parent | e94e6ee495d95f29355bbc017214228a5e367638 (diff) | |
download | gcc-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