[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).
Thanks,
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