[Patch AArch64] Implement Vector Permute Support

Andrew Pinski pinskia@gmail.com
Wed Jan 8 00:10:00 GMT 2014

On Tue, Jan 7, 2014 at 4:05 PM, Marcus Shawcroft
<Marcus.Shawcroft@arm.com> wrote:
> On 7 Jan 2014, at 23:10, Andrew Pinski <pinskia@gmail.com> wrote:
>> On Tue, Dec 4, 2012 at 2:31 AM, James Greenhalgh
>> <james.greenhalgh@arm.com> wrote:
>>> Hi,
>>> This patch adds support for Vector Shuffle style operations
>>> through support for TARGET_VECTORIZE_VEC_PERM_CONST_OK and
>>> the vec_perm and vec_perm_const standard patterns.
>>> In this patch we add the framework and support for the
>>> generic tbl instruction. This can be used to handle any
>>> vector permute operation, but we can do a better job for
>>> some special cases. The second patch of this series does
>>> that better job for the ZIP, UZP and TRN instructions.
>>> Is this OK to commit?
>> This breaks big-endian aarch64 in a very bad way.  vec_perm<mode> is
>> enabled for big-endian but aarch64_expand_vec_perm will ICE right
>> away.  Can you please test big-endian also next time?
>> Here is the shortest testcase which fails at -O3:
>> void fill_window(unsigned short *p, unsigned wsize)
>> {
>>    unsigned n, m;
>>    do {
>>       m = *--p;
>>       *p = (unsigned short)(m >= wsize ? m-wsize : 0);
>>    } while (--n);
>> }
>> This comes from zlib and it blocks my building of the trunk.
>> Thanks,
>> Andrew Pinski
> Andrew, We know that there are numerous issues with aarch64 BE advsimd support in GCC.  The aarch64_be support is very much a work in progress.  Tejas sorted out a number of fundamentals with a series of patches in November, notably in PCS conformance.  There is more to come.  However, aarch64_be-* support in gcc 4.9 is not going to match the level of quality for the aarch64-* port.

Yes but should not introduce an ICE while GCC is in stage3.  This was
working before due not having a vec_perm before.  I am going to
request this to be reverted soon if it is not fixed (the GCC rules are
clear here).

Andrew Pinski

PS sorry if you received this message twice, I had to remove your
company stupid message.

> Cheers
> /Marcus

More information about the Gcc-patches mailing list