diff options
author | liuhongt <hongtao.liu@intel.com> | 2024-06-26 13:52:24 +0800 |
---|---|---|
committer | liuhongt <hongtao.liu@intel.com> | 2024-07-01 09:09:59 +0800 |
commit | e62ea4fb8ffcab06ddd02f26db91b29b7270743f (patch) | |
tree | 974cc9322edd39a38bb5886c55a1ea892f28dc6e /gcc/go | |
parent | 8e1fa107a63b2e160b6bf69de4fe163dd3cebd80 (diff) | |
download | gcc-e62ea4fb8ffcab06ddd02f26db91b29b7270743f.zip gcc-e62ea4fb8ffcab06ddd02f26db91b29b7270743f.tar.gz gcc-e62ea4fb8ffcab06ddd02f26db91b29b7270743f.tar.bz2 |
Enable flate-combine.
Move pass_stv2 and pass_rpad after pre_reload pass_late_combine, also
define target_insn_cost to prevent post_reload pass_late_combine to
revert the optimziation did in pass_rpad.
Adjust testcases since pass_late_combine generates better code but
break scan assembly.
.i.e
Under 32-bit target, gcc used to generate broadcast from stack and
then do the real operation.
After flate_combine, they're combined into embeded broadcast
operations.
gcc/ChangeLog:
* config/i386/i386-features.cc (ix86_rpad_gate): New function.
* config/i386/i386-options.cc (ix86_override_options_after_change):
Don't disable flate_combine.
* config/i386/i386-passes.def: Move pass_stv2 and pass_rpad
after pre_reload pas_late_combine.
* config/i386/i386-protos.h (ix86_rpad_gate): New declare.
* config/i386/i386.cc (ix86_insn_cost): New function.
(TARGET_INSN_COST): Define.
gcc/testsuite/ChangeLog:
* gcc.target/i386/avx512f-broadcast-pr87767-1.c: Adjus
testcase.
* gcc.target/i386/avx512f-broadcast-pr87767-5.c: Ditto.
* gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Ditto.
* gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Ditto.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Ditto.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Ditto.
* gcc.target/i386/avx512vl-broadcast-pr87767-1.c: Ditto.
* gcc.target/i386/avx512vl-broadcast-pr87767-5.c: Ditto.
* gcc.target/i386/pr91333.c: Ditto.
* gcc.target/i386/vect-strided-4.c: Ditto.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions