[AArch64] Fix predicate alignment for fixed-length SVE
aarch64_simd_vector_alignment was only giving predicates 16-bit alignment in VLA mode, not VLS mode. I think the problem is latent because we can't yet create an ABI predicate type, but it seemed worth fixing in a standalone patch rather than as part of the main ACLE series. The ACLE patches have tests for this. 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return 16 for SVE predicates even if they are fixed-length. From-SVN: r274522
This commit is contained in:
parent
2d2388f82f
commit
07108a9ebe
2 changed files with 11 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
|
||||
16 for SVE predicates even if they are fixed-length.
|
||||
|
||||
2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
|
||||
|
|
|
@ -15915,11 +15915,13 @@ aarch64_simd_attr_length_rglist (machine_mode mode)
|
|||
static HOST_WIDE_INT
|
||||
aarch64_simd_vector_alignment (const_tree type)
|
||||
{
|
||||
/* ??? Checking the mode isn't ideal, but VECTOR_BOOLEAN_TYPE_P can
|
||||
be set for non-predicate vectors of booleans. Modes are the most
|
||||
direct way we have of identifying real SVE predicate types. */
|
||||
if (GET_MODE_CLASS (TYPE_MODE (type)) == MODE_VECTOR_BOOL)
|
||||
return 16;
|
||||
if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
|
||||
/* ??? Checking the mode isn't ideal, but VECTOR_BOOLEAN_TYPE_P can
|
||||
be set for non-predicate vectors of booleans. Modes are the most
|
||||
direct way we have of identifying real SVE predicate types. */
|
||||
return GET_MODE_CLASS (TYPE_MODE (type)) == MODE_VECTOR_BOOL ? 16 : 128;
|
||||
return 128;
|
||||
return wi::umin (wi::to_wide (TYPE_SIZE (type)), 128).to_uhwi ();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue