This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[power7-meissner] Disallow V2DF/V2DI permutes by default
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 5 Jun 2009 14:00:17 -0400
- Subject: [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