aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorLehua Ding <lehua.ding@rivai.ai>2023-09-04 17:15:08 +0800
committerLehua Ding <lehua.ding@rivai.ai>2023-09-06 17:55:24 +0800
commit9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8 (patch)
tree54645fb9515b7de46febb26e7a8526e8edb53947 /gcc/expr.cc
parent4abcc5009c1ad852e235f368f535c0bf6bfa7697 (diff)
downloadgcc-9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8.zip
gcc-9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8.tar.gz
gcc-9ee40b9a7bee83394fc7ba6fef71cb76d91b49c8.tar.bz2
RISC-V: Keep vlmax vector operators in simple form until split1 pass
This patch keep vlmax vector pattern in simple before split1 pass which will allow more optimization (e.g. combine) before split1 pass. This patch changes the vlmax pattern in autovec.md to define_insn_and_split as much as possible and clean up some combine patterns that are no longer needed. This patch also fixed PR111232 bug which was caused by a combined failed. PR target/111232 gcc/ChangeLog: * config/riscv/autovec-opt.md (@pred_single_widen_mul<any_extend:su><mode>): Delete. (*pred_widen_mulsu<mode>): Delete. (*pred_single_widen_mul<mode>): Delete. (*dual_widen_<any_widen_binop:optab><any_extend:su><mode>): Add new combine patterns. (*single_widen_sub<any_extend:su><mode>): Ditto. (*single_widen_add<any_extend:su><mode>): Ditto. (*single_widen_mult<any_extend:su><mode>): Ditto. (*dual_widen_mulsu<mode>): Ditto. (*dual_widen_mulus<mode>): Ditto. (*dual_widen_<optab><mode>): Ditto. (*single_widen_add<mode>): Ditto. (*single_widen_sub<mode>): Ditto. (*single_widen_mult<mode>): Ditto. * config/riscv/autovec.md (<optab><mode>3): Change define_expand to define_insn_and_split. (<optab><mode>2): Ditto. (abs<mode>2): Ditto. (smul<mode>3_highpart): Ditto. (umul<mode>3_highpart): Ditto. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/widen/widen-4.c: Add more testcases. * gcc.target/riscv/rvv/autovec/widen/widen-complicate-4.c: Ditto. * gcc.target/riscv/rvv/autovec/pr111232.c: New test.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions