[rs6000] Correct unaligned_load vector cost for Power9

Message ID ac25da70-159c-db89-05f1-864822f4484d@linux.vnet.ibm.com
State New
Headers show
Series
  • [rs6000] Correct unaligned_load vector cost for Power9
Related show

Commit Message

Pat Haugen Oct. 9, 2017, 8:46 p.m.
Power9 has efficient unaligned load insns. The following patch fixes the
cost to reflect that. There was no similar code for the unaligned_store
case.  Bootstrap/regtest on powerpc64le-linux with no new regressions.
Ok for trunk?

-Pat


2017-10-09  Pat Haugen  <pthaugen@us.ibm.com>

	* config/rs6000/power9.c (rs6000_builtin_vectorization_cost): Remove
	TARGET_P9_VECTOR code for unaligned_load case.

Comments

Segher Boessenkool Oct. 12, 2017, 11:59 p.m. | #1
On Mon, Oct 09, 2017 at 03:46:17PM -0500, Pat Haugen wrote:
> Power9 has efficient unaligned load insns. The following patch fixes the
> cost to reflect that. There was no similar code for the unaligned_store
> case.  Bootstrap/regtest on powerpc64le-linux with no new regressions.
> Ok for trunk?

Sorry this fell through the cracks.  Yes, okay.  Thanks!


Segher


> 2017-10-09  Pat Haugen  <pthaugen@us.ibm.com>
> 
> 	* config/rs6000/power9.c (rs6000_builtin_vectorization_cost): Remove
> 	TARGET_P9_VECTOR code for unaligned_load case.
> 
> 
> Index: gcc/config/rs6000/rs6000.c
> ===================================================================
> --- gcc/config/rs6000/rs6000.c	(revision 253547)
> +++ gcc/config/rs6000/rs6000.c	(working copy)
> @@ -5438,9 +5438,6 @@ rs6000_builtin_vectorization_cost (enum
>          return 3;
> 
>        case unaligned_load:
> -	if (TARGET_P9_VECTOR)
> -	  return 3;
> -
>  	if (TARGET_EFFICIENT_UNALIGNED_VSX)
>  	  return 1;

Patch

Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c	(revision 253547)
+++ gcc/config/rs6000/rs6000.c	(working copy)
@@ -5438,9 +5438,6 @@  rs6000_builtin_vectorization_cost (enum
         return 3;

       case unaligned_load:
-	if (TARGET_P9_VECTOR)
-	  return 3;
-
 	if (TARGET_EFFICIENT_UNALIGNED_VSX)
 	  return 1;