rs6000: Fix some unexpected empty split conditions
authorKewen Lin <linkw@linux.ibm.com>
Thu, 18 Mar 2021 06:22:59 +0000 (01:22 -0500)
committerKewen Lin <linkw@linux.ibm.com>
Mon, 22 Mar 2021 02:27:23 +0000 (21:27 -0500)
commit0ec7641ee1823a73b560e2ed2518bf728ac9e22e
treec3ba5f49325cf5890639127a9f01cd3e87d736f6
parentd0a5e8e1a84bdd6ce915c3be65da8af2552cd49e
rs6000: Fix some unexpected empty split conditions

This patch is to fix empty split-conditions of some
define_insn_and_split definitions where their conditions for
define_insn part aren't empty.  As Segher and Mike pointed
out, they can sometimes lead to unexpected consequences.

Bootstrapped/regtested on powerpc64le-linux-gnu P9 and
powerpc64-linux-gnu P8.

gcc/ChangeLog:

* config/rs6000/rs6000.md (*rotldi3_insert_sf,
*mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
*floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
*round32<mode>2_fprs, *roundu32<mode>2_fprs,
*fix_trunc<mode>si2_internal): Fix empty split condition.
* config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
*vsx_reduc_<VEC_reduc_name>_v2df_scalar,
*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/vsx.md