[ARM][PATCH] Vectorizer generates unaligned access when -mno-unaligned-access is enabled
Ramana Radhakrishnan
ramrad01@arm.com
Tue Feb 4 15:54:00 GMT 2014
On 02/03/14 05:41, Kugan wrote:
> With the 2013-09-21 version of trunk, attached test case results in bus
> error when simultaneously enabling both -mno-unaligned-access and
> -ftree-vectorize.
> The error is caused by unaligned vector load via two vldr instructions:
>
> vldr d16, [r3, #-16]
> vldr d17, [r3, #-8]
>
So, does this mean that we get unaligned vector loads when
munaligned-access is on, using vldr instructions ? This worries me
because we shouldn't be putting out vldr's. I was hoping to have dug a
bit further today but don't think I will make much more progress. Can
you dig a bit further to make sure that this is only code path that
triggers this ?
> Cause for this error is, even when -mno-unaligned-access is enabled,
> backend will inform vectorizer that it supports misaligned accesses
> via TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT.
>
> Attached patch fixes this. Is this OK for trunk?
How has it been tested ?
Ramana
>
> Thanks,
> Kugan
>
> +2014-02-03 Yury Gribov <tetra2005@gmail.com>
> + Kugan Vivekanandarajah <kuganv@linaro.org>
> +
> + * config/arm/arm.c (arm_vector_alignment_reachable): Check
> + unaligned_access.
> + * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
> +
>
>
>
> +2014-02-03 Yury Gribov <tetra2005@gmail.com>
> + Kugan Vivekanandarajah <kuganv@linaro.org>
> +
> + * gcc.target/arm/vect-noalign.c: New file.
> +
>
--
Ramana Radhakrishnan
Principal Engineer
ARM Ltd.
More information about the Gcc-patches
mailing list