This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Possible patches for bug 27565
On Fri, 18 Aug 2006, David Edelsohn wrote:
> Our consensus is that the LOCAL_ALIGNMENT test should be changed
> to
>
> (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE
> && SPE_VECTOR_MODE (TYPE_MODE (TYPE)) ? 64 : ALIGN)
>
> not ALIGN < 64.
>
> A patch with that change is okay with me.
I've applied this patch after testing that it gets rid of the same FAILs
as the other two patches.
2006-08-18 Joseph Myers <joseph@codesourcery.com>
PR target/27565
* config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
alignment of SPE vector types.
Index: gcc/config/rs6000/rs6000.h
===================================================================
--- gcc/config/rs6000/rs6000.h (revision 116229)
+++ gcc/config/rs6000/rs6000.h (working copy)
@@ -503,7 +503,8 @@
#define LOCAL_ALIGNMENT(TYPE, ALIGN) \
((TARGET_ALTIVEC && TREE_CODE (TYPE) == VECTOR_TYPE) ? 128 : \
(TARGET_E500_DOUBLE && TYPE_MODE (TYPE) == DFmode) ? 64 : \
- (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE) ? 64 : ALIGN)
+ (TARGET_SPE && TREE_CODE (TYPE) == VECTOR_TYPE \
+ && SPE_VECTOR_MODE (TYPE_MODE (TYPE))) ? 64 : ALIGN)
/* Alignment of field after `int : 0' in a structure. */
#define EMPTY_FIELD_BOUNDARY 32
--
Joseph S. Myers
joseph@codesourcery.com