===================================================================
@@ -207,7 +207,7 @@ extern void init_cumulative_args (CUMULATIVE_ARGS
#endif /* RTX_CODE */
#ifdef TREE_CODE
-extern int ix86_data_alignment (tree, int, bool);
+extern int ix86_data_alignment (tree, unsigned int, bool);
extern unsigned int ix86_local_alignment (tree, machine_mode,
unsigned int);
extern unsigned int ix86_minimum_alignment (tree, machine_mode,
===================================================================
@@ -29802,7 +29802,7 @@ iamcu_alignment (tree type, int align)
instead of that alignment to align the object. */
int
-ix86_data_alignment (tree type, int align, bool opt)
+ix86_data_alignment (tree type, unsigned int align, bool opt)
{
/* GCC 4.8 and earlier used to incorrectly assume this alignment even
for symbols from other compilation units or symbols that don't need
@@ -29810,7 +29810,7 @@ int
those compilers, ensure we don't decrease alignment from what we
used to assume. */
- int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
+ unsigned int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
/* A data structure, equal or greater than the size of a cache line
(64 bytes in the Pentium 4 and other recent Intel processors, including
@@ -29817,7 +29817,7 @@ int
processors based on Intel Core microarchitecture) should be aligned
so that its base address is a multiple of a cache line size. */
- int max_align
+ unsigned int max_align
= MIN ((unsigned) ix86_tune_cost->prefetch_block * 8, MAX_OFILE_ALIGNMENT);
if (max_align < BITS_PER_WORD)
===================================================================
@@ -0,0 +1,9 @@
+/* PR target/89261 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef double __v2df __attribute__ ((__vector_size__ (16), aligned(1 << 28)));
+
+__v2df foo = { 1.0, 2.0 };
+
+/* { dg-final { scan-assembler "\.align\[ \t]+268435456" } } */