This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch AArch64] Fix for PR62040
- From: Carrot Wei <carrot at google dot com>
- To: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 3 Sep 2014 22:34:06 -0700
- Subject: Re: [Patch AArch64] Fix for PR62040
- Authentication-results: sourceware.org; auth=none
- References: <CAEe8uEBzxteH-F2v4auXcC81VnXOcN6XVd_7KcF=iX_4ff_Ksw at mail dot gmail dot com> <53F48602 dot 4010700 at arm dot com> <CAEe8uECw178drZk+BfCCRNAycWmX7JvYTT69TONEEPBZyHuS=A at mail dot gmail dot com> <CAFqB+PwRX5FomLo-_-K-g2kgiyVyxc6CLji-L0+YweXm=-CEWA at mail dot gmail dot com>
Changed the coding style.
2014-09-03 Guozhi Wei <carrot@google.com>
PR target/62040
* gcc.target/aarch64/pr62040.c: New test.
Index: pr62040.c
===================================================================
--- pr62040.c (revision 0)
+++ pr62040.c (revision 0)
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-g -Os" } */
+
+#include "arm_neon.h"
+
+extern void bar (int32x4_t);
+
+void
+foo ()
+{
+ int32x4x4_t rows;
+ uint64x2x2_t row01;
+
+ row01.val[0] = vreinterpretq_u64_s32 (rows.val[0]);
+ row01.val[1] = vreinterpretq_u64_s32 (rows.val[1]);
+ uint64x1_t row3l = vget_low_u64 (row01.val[0]);
+ row01.val[0] = vcombine_u64 (vget_low_u64 (row01.val[1]), row3l);
+ int32x4_t xxx = vreinterpretq_s32_u64 (row01.val[0]);
+ int32x4_t out = vtrn1q_s32 (xxx, xxx);
+ bar (out);
+}
On Wed, Sep 3, 2014 at 6:04 AM, Marcus Shawcroft
<marcus.shawcroft@gmail.com> wrote:
> On 20 August 2014 20:51, Carrot Wei <carrot@google.com> wrote:
>> Good suggestion. Add the testcase.
>>
>> thanks
>> Guozhi Wei
>>
>> 2014-08-20 Guozhi Wei <carrot@google.com>
>>
>> PR target/62040
>> * gcc.target/aarch64/pr62040.c: New test.
>>
>> Index: pr62040.c
>> ===================================================================
>> --- pr62040.c (revision 0)
>> +++ pr62040.c (revision 0)
>> @@ -0,0 +1,19 @@
>> +/* { dg-do compile } */
>> +/* { dg-options "-g -Os" } */
>> +
>> +#include "arm_neon.h"
>> +
>> +extern bar(int32x4_t);
>> +
>> +void foo() {
>> + int32x4x4_t rows;
>> + uint64x2x2_t row01;
>> +
>> + row01.val[0] = vreinterpretq_u64_s32(rows.val[0]);
>> + row01.val[1] = vreinterpretq_u64_s32(rows.val[1]);
>> + uint64x1_t row3l = vget_low_u64(row01.val[0]);
>> + row01.val[0] = vcombine_u64(vget_low_u64(row01.val[1]), row3l);
>> + int32x4_t xxx = vreinterpretq_s32_u64(row01.val[0]);
>> + int32x4_t out = vtrn1q_s32 (xxx, xxx);
>> + bar(out);
>> +}
>
>
> GNU coding style please.
>
> /Marcus