x86: Add cost model for operation of mask registers.
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 3 Sep 2019 21:41:02 +0000 (14:41 -0700)
committerliuhongt <hongtao.liu@intel.com>
Fri, 21 Aug 2020 04:48:27 +0000 (12:48 +0800)
commit00cb3494cab397b5655ab42fd69310883c12137c
tree1a4f9be91ab17d5187f9f9e4a3433e73bb51cc2b
parent6b31b6b52612a6d4a7a84e71f6331464d68400d4
x86: Add cost model for operation of mask registers.

gcc/

PR target/71453
* config/i386/i386.h (struct processor_costs): Add member
mask_to_integer, integer_to_mask, mask_load[3], mask_store[3],
mask_move.
* config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost,
i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost,
geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost,
bdver_cost, znver1_cost, znver2_cost, skylake_cost,
btver1_cost, btver2_cost, pentium4_cost, nocona_cost,
atom_cost, slm_cost, intel_cost, generic_cost, core_cost):
Initialize mask_load[3], mask_store[3], mask_move,
integer_to_mask, mask_to_integer for all target costs.
* config/i386/i386.c (ix86_register_move_cost): Using cost
model of mask registers.
(inline_memory_move_cost): Ditto.
(ix86_register_move_cost): Ditto.
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i386/x86-tune-costs.h