[RS6000] Delete duplicate code

This removes the duplicate (TARGET_POWERPC64 && size == 16) block.

	* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
	Delete duplicated code.

From-SVN: r239009
This commit is contained in:
Alan Modra 2016-08-03 10:00:04 +09:30 committed by Alan Modra
parent 749f7c4466
commit 3717616ba7
2 changed files with 22 additions and 41 deletions

View file

@ -1,3 +1,8 @@
2016-08-03 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
Delete duplicated code.
2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/72778

View file

@ -19599,50 +19599,11 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type,
int cost = 0;
int size = GET_MODE_SIZE (mode);
if (TARGET_POWERPC64)
{
if (size == 16)
{
/* Handle moving 128-bit values from GPRs to VSX point registers on
ISA 2.07 (power8, power9) when running in 64-bit mode using
XXPERMDI to glue the two 64-bit values back together. */
if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 3; /* 2 mtvsrd's, 1 xxpermdi. */
icode = reg_addr[mode].reload_vsx_gpr;
}
/* Handle moving 128-bit values from VSX point registers to GPRs on
ISA 2.07 when running in 64-bit mode using XXPERMDI to get access to the
bottom 64-bit value. */
else if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* 2 mfvsrd's, 1 xxpermdi. */
icode = reg_addr[mode].reload_gpr_vsx;
}
}
else if (mode == SFmode)
{
if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* xscvdpspn, mfvsrd, and. */
icode = reg_addr[mode].reload_gpr_vsx;
}
else if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 2; /* mtvsrz, xscvspdpn. */
icode = reg_addr[mode].reload_vsx_gpr;
}
}
}
if (TARGET_POWERPC64 && size == 16)
{
/* Handle moving 128-bit values from GPRs to VSX point registers on
ISA 2.07 when running in 64-bit mode using XXPERMDI to glue the two
64-bit values back together. */
ISA 2.07 (power8, power9) when running in 64-bit mode using
XXPERMDI to glue the two 64-bit values back together. */
if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 3; /* 2 mtvsrd's, 1 xxpermdi. */
@ -19659,6 +19620,21 @@ rs6000_secondary_reload_direct_move (enum rs6000_reg_type to_type,
}
}
else if (TARGET_POWERPC64 && mode == SFmode)
{
if (to_type == GPR_REG_TYPE && from_type == VSX_REG_TYPE)
{
cost = 3; /* xscvdpspn, mfvsrd, and. */
icode = reg_addr[mode].reload_gpr_vsx;
}
else if (to_type == VSX_REG_TYPE && from_type == GPR_REG_TYPE)
{
cost = 2; /* mtvsrz, xscvspdpn. */
icode = reg_addr[mode].reload_vsx_gpr;
}
}
else if (!TARGET_POWERPC64 && size == 8)
{
/* Handle moving 64-bit values from GPRs to floating point registers on