This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[power7-meissner] Disallow V2DF/V2DI permutes by default


As I mentioned in my patch against the mainline, calculix doesn't build with
the current power7 patches with VSX, since it fails when the auto vectorizer is
trying to use a permute on a V2DF/V2DI and then gets a validation error.  In
thinking about it, V2DF/V2DI permutes might not make as much sense on power7,
since you need to load up the permute mask, use the Altivec vperm instruction
(which might involve a register copy from a FP register to an Altivec
register).  Given there are only two elements, it is simpler to just use an
extract, which can be done without the mask.

2009-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (-mallow-df-permute): Make the default
	not to allow V2DF/V2DI permutes.

Index: gcc/config/rs6000/rs6000.opt
===================================================================
--- gcc/config/rs6000/rs6000.opt	(revision 148218)
+++ gcc/config/rs6000/rs6000.opt	(working copy)
@@ -144,7 +144,7 @@ Target Undocumented Var(TARGET_ALLOW_MOV
 ; Allow/disallow the movmisalign in DF/DI vectors
 
 mallow-df-permute
-Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE) Init(-1)
+Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE)
 ; Allow/disallow permutation of DF/DI vectors
 
 mupdate


-- 
Michael Meissner, IBM
4 Technology Place Drive, MS 2203A, Westford, MA, 01886, USA
meissner@linux.vnet.ibm.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]