> gcc/
> 2013-12-30 Alexander Ivchenko <[email protected]>
> Maxim Kuznetsov <[email protected]>
> Sergey Lega <[email protected]>
> Anna Tikhonova <[email protected]>
> Ilya Tocar <[email protected]>
> Andrey Turetskiy <[email protected]>
> Ilya Verbin <[email protected]>
> Kirill Yukhin <[email protected]>
> Michael Zolotukhin <[email protected]>
>
> * config/i386/i386.c (MAX_CLASSES): Increase number of classes.
> (classify_argument): Extend for 512 bit vectors.
> (construct_container): Ditto.
> (function_arg_advance_32): Ditto.
> (function_arg_advance_64): Ditto.
> (function_arg_32): Ditto.
> (function_arg_64): Ditto.
> (function_value_32): Ditto.
> (return_in_memory_32): Ditto.
> (ix86_gimplify_va_arg): Ditto.
> (standard_sse_constant_p): Ditto.
> (standard_sse_constant_opcode): Ditto.
> (ix86_expand_vector_convert_uns_vsivsf): Ditto.
> (ix86_build_const_vector): Ditto.
> (ix86_build_signbit_mask): Ditto.
> (ix86_expand_sse_cmp): Extend for AVX512.
> (ix86_expand_sse_movcc): Ditto.
> (ix86_expand_int_vcond): Ditto.
> (ix86_expand_vec_perm): Ditto.
> (ix86_expand_sse_unpack): Ditto.
> (ix86_constant_alignment): Ditto.
The change is actually to ix86_data_alignment, not to ix86_constant_alignment:
@@ -26219,7 +26433,8 @@ ix86_constant_alignment (tree exp, int align)
int
ix86_data_alignment (tree type, int align, bool opt)
{
- int max_align = optimize_size ? BITS_PER_WORD : MIN (256,
MAX_OFILE_ALIGNMENT);
+ int max_align = optimize_size ? BITS_PER_WORD
+ : MIN (512, MAX_OFILE_ALIGNMENT);
if (opt
&& AGGREGATE_TYPE_P (type)
Note that it has unexpected side-effects: previously, in 32-bit mode, 256-bit
aggregate objects would have been given 256-bit alignment; now, they will fall
back to default alignment, for example 32-bit only.
--
Eric Botcazou