mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 21:31:19 +08:00
amdgcn: generalize vector insn modes
Replace all relevant explicit uses of V64 vectors with an iterator (albeit with only one entry). This is prerequisite to adding extra vector lengths. The changes are purely mechanical: comparing the mddump files from before and after shows only white-space differences and the use of GET_MODE_NUNITS. 2020-03-31 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF): New mode iterators. (vnsi, VnSI, vndi, VnDI): New mode attributes. (mov<mode>): Use <VnDI> in place of V64DI. (mov<mode>_exec): Likewise. (mov<mode>_sgprbase): Likewise. (reload_out<mode>): Likewise. (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64. (gather_load<mode>v64si): Rename to ... (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI, and <VnDI> in place of V64DI. (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI. (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI. (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>. (scatter_store<mode>v64si): Rename to ... (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>. (scatter<mode>_insn_1offset<exec_scatter>): Likewise. (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. (ds_bpermute<mode>): Use <VnSI>. (addv64si3_vcc<exec_vcc>): Rename to ... (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI. (addv64si3_vcc_dup<exec_vcc>): Rename to ... (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI. (addcv64si3<exec_vcc>): Rename to ... (addc<mode>3<exec_vcc>): ... this, and use V_SI. (subv64si3_vcc<exec_vcc>): Rename to ... (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI. (subcv64si3<exec_vcc>): Rename to ... (subc<mode>3<exec_vcc>): ... this, and use V_SI. (addv64di3): Rename to ... (add<mode>3): ... this, and use V_DI. (addv64di3_exec): Rename to ... (add<mode>3_exec): ... this, and use V_DI. (subv64di3): Rename to ... (sub<mode>3): ... this, and use V_DI. (subv64di3_exec): Rename to ... (sub<mode>3_exec): ... this, and use V_DI. (addv64di3_zext): Rename to ... (add<mode>3_zext): ... this, and use V_DI and <VnSI>. (addv64di3_zext_exec): Rename to ... (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. (addv64di3_zext_dup): Rename to ... (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>. (addv64di3_zext_dup_exec): Rename to ... (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>. (addv64di3_zext_dup2): Rename to ... (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. (addv64di3_zext_dup2_exec): Rename to ... (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. (addv64di3_sext_dup2): Rename to ... (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>. (addv64di3_sext_dup2_exec): Rename to ... (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>. (<su>mulv64si3_highpart<exec>): Rename to ... (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>. (mulv64di3): Rename to ... (mul<mode>3): ... this, and use V_DI and <VnSI>. (mulv64di3_exec): Rename to ... (mul<mode>3_exec): ... this, and use V_DI and <VnSI>. (mulv64di3_zext): Rename to ... (mul<mode>3_zext): ... this, and use V_DI and <VnSI>. (mulv64di3_zext_exec): Rename to ... (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. (mulv64di3_zext_dup2): Rename to ... (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. (mulv64di3_zext_dup2_exec): Rename to ... (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. (<expander>v64di3): Rename to ... (<expander><mode>3): ... this, and use V_DI and <VnSI>. (<expander>v64di3_exec): Rename to ... (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>. (<expander>v64si3<exec>): Rename to ... (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. (v<expander>v64si3<exec>): Rename to ... (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. (<expander>v64si3<exec>): Rename to ... (<expander><vnsi>3<exec>): ... this, and use V_SI. (subv64df3<exec>): Rename to ... (sub<mode>3<exec>): ... this, and use V_DF. (truncv64di<mode>2): Rename to ... (trunc<vndi><mode>2): ... this, and use <VnDI>. (truncv64di<mode>2_exec): Rename to ... (trunc<vndi><mode>2_exec): ... this, and use <VnDI>. (<convop><mode>v64di2): Rename to ... (<convop><mode><vndi>2): ... this, and use <VnDI>. (<convop><mode>v64di2_exec): Rename to ... (<convop><mode><vndi>2_exec): ... this, and use <VnDI>. (vec_cmp<u>v64qidi): Rename to ... (vec_cmp<u><mode>di): ... this, and use <VnSI>. (vec_cmp<u>v64qidi_exec): Rename to ... (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>. (vcond_mask_<mode>di): Use <VnDI>. (maskload<mode>di): Likewise. (maskstore<mode>di): Likewise. (mask_gather_load<mode>v64si): Rename to ... (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. (mask_scatter_store<mode>v64si): Rename to ... (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. (*<reduc_op>_dpp_shr_v64di): Rename to ... (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. (*plus_carry_in_dpp_shr_v64si): Rename to ... (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI. (*plus_carry_dpp_shr_v64di): Rename to ... (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. (vec_seriesv64si): Rename to ... (vec_series<mode>): ... this, and use V_SI. (vec_seriesv64di): Rename to ... (vec_series<mode>): ... this, and use V_DI.
This commit is contained in:
parent
dc56917d11
commit
1165109b40
113
gcc/ChangeLog
113
gcc/ChangeLog
@ -1,3 +1,116 @@
|
||||
2020-03-31 Andrew Stubbs <ams@codesourcery.com>
|
||||
|
||||
* config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF):
|
||||
New mode iterators.
|
||||
(vnsi, VnSI, vndi, VnDI): New mode attributes.
|
||||
(mov<mode>): Use <VnDI> in place of V64DI.
|
||||
(mov<mode>_exec): Likewise.
|
||||
(mov<mode>_sgprbase): Likewise.
|
||||
(reload_out<mode>): Likewise.
|
||||
(*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64.
|
||||
(gather_load<mode>v64si): Rename to ...
|
||||
(gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI,
|
||||
and <VnDI> in place of V64DI.
|
||||
(gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI.
|
||||
(gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI.
|
||||
(gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>.
|
||||
(scatter_store<mode>v64si): Rename to ...
|
||||
(scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
|
||||
(scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>.
|
||||
(scatter<mode>_insn_1offset<exec_scatter>): Likewise.
|
||||
(scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
|
||||
(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
|
||||
(ds_bpermute<mode>): Use <VnSI>.
|
||||
(addv64si3_vcc<exec_vcc>): Rename to ...
|
||||
(add<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
|
||||
(addv64si3_vcc_dup<exec_vcc>): Rename to ...
|
||||
(add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI.
|
||||
(addcv64si3<exec_vcc>): Rename to ...
|
||||
(addc<mode>3<exec_vcc>): ... this, and use V_SI.
|
||||
(subv64si3_vcc<exec_vcc>): Rename to ...
|
||||
(sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI.
|
||||
(subcv64si3<exec_vcc>): Rename to ...
|
||||
(subc<mode>3<exec_vcc>): ... this, and use V_SI.
|
||||
(addv64di3): Rename to ...
|
||||
(add<mode>3): ... this, and use V_DI.
|
||||
(addv64di3_exec): Rename to ...
|
||||
(add<mode>3_exec): ... this, and use V_DI.
|
||||
(subv64di3): Rename to ...
|
||||
(sub<mode>3): ... this, and use V_DI.
|
||||
(subv64di3_exec): Rename to ...
|
||||
(sub<mode>3_exec): ... this, and use V_DI.
|
||||
(addv64di3_zext): Rename to ...
|
||||
(add<mode>3_zext): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_zext_exec): Rename to ...
|
||||
(add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_zext_dup): Rename to ...
|
||||
(add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_zext_dup_exec): Rename to ...
|
||||
(add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_zext_dup2): Rename to ...
|
||||
(add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_zext_dup2_exec): Rename to ...
|
||||
(add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_sext_dup2): Rename to ...
|
||||
(add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>.
|
||||
(addv64di3_sext_dup2_exec): Rename to ...
|
||||
(add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>.
|
||||
(<su>mulv64si3_highpart<exec>): Rename to ...
|
||||
(<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>.
|
||||
(mulv64di3): Rename to ...
|
||||
(mul<mode>3): ... this, and use V_DI and <VnSI>.
|
||||
(mulv64di3_exec): Rename to ...
|
||||
(mul<mode>3_exec): ... this, and use V_DI and <VnSI>.
|
||||
(mulv64di3_zext): Rename to ...
|
||||
(mul<mode>3_zext): ... this, and use V_DI and <VnSI>.
|
||||
(mulv64di3_zext_exec): Rename to ...
|
||||
(mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>.
|
||||
(mulv64di3_zext_dup2): Rename to ...
|
||||
(mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>.
|
||||
(mulv64di3_zext_dup2_exec): Rename to ...
|
||||
(mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>.
|
||||
(<expander>v64di3): Rename to ...
|
||||
(<expander><mode>3): ... this, and use V_DI and <VnSI>.
|
||||
(<expander>v64di3_exec): Rename to ...
|
||||
(<expander><mode>3_exec): ... this, and use V_DI and <VnSI>.
|
||||
(<expander>v64si3<exec>): Rename to ...
|
||||
(<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
|
||||
(v<expander>v64si3<exec>): Rename to ...
|
||||
(v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>.
|
||||
(<expander>v64si3<exec>): Rename to ...
|
||||
(<expander><vnsi>3<exec>): ... this, and use V_SI.
|
||||
(subv64df3<exec>): Rename to ...
|
||||
(sub<mode>3<exec>): ... this, and use V_DF.
|
||||
(truncv64di<mode>2): Rename to ...
|
||||
(trunc<vndi><mode>2): ... this, and use <VnDI>.
|
||||
(truncv64di<mode>2_exec): Rename to ...
|
||||
(trunc<vndi><mode>2_exec): ... this, and use <VnDI>.
|
||||
(<convop><mode>v64di2): Rename to ...
|
||||
(<convop><mode><vndi>2): ... this, and use <VnDI>.
|
||||
(<convop><mode>v64di2_exec): Rename to ...
|
||||
(<convop><mode><vndi>2_exec): ... this, and use <VnDI>.
|
||||
(vec_cmp<u>v64qidi): Rename to ...
|
||||
(vec_cmp<u><mode>di): ... this, and use <VnSI>.
|
||||
(vec_cmp<u>v64qidi_exec): Rename to ...
|
||||
(vec_cmp<u><mode>di_exec): ... this, and use <VnSI>.
|
||||
(vcond_mask_<mode>di): Use <VnDI>.
|
||||
(maskload<mode>di): Likewise.
|
||||
(maskstore<mode>di): Likewise.
|
||||
(mask_gather_load<mode>v64si): Rename to ...
|
||||
(mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
|
||||
(mask_scatter_store<mode>v64si): Rename to ...
|
||||
(mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>.
|
||||
(*<reduc_op>_dpp_shr_v64di): Rename to ...
|
||||
(*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
|
||||
(*plus_carry_in_dpp_shr_v64si): Rename to ...
|
||||
(*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI.
|
||||
(*plus_carry_dpp_shr_v64di): Rename to ...
|
||||
(*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>.
|
||||
(vec_seriesv64si): Rename to ...
|
||||
(vec_series<mode>): ... this, and use V_SI.
|
||||
(vec_seriesv64di): Rename to ...
|
||||
(vec_series<mode>): ... this, and use V_DI.
|
||||
|
||||
2020-03-31 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
* config/arc/arc.c (arc_print_operand): Use
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user