Tamar Christina writes:
> Hi Richard,
>
> Here's the split off complex add.
>
> Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
> Checked with armv8-a+sve2+fp16 and no issues. Note that due to a mid-end
> limitation SLP for SVE currently fails for some permutes. The tests have
Hi Richard,
Here's the split off complex add.
Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
Checked with armv8-a+sve2+fp16 and no issues. Note that due to a mid-end
limitation SLP for SVE currently fails for some permutes. The tests have these
marked as XFAIL.
Matching tests
Tamar Christina writes:
> Hi Richard,
>
> Do you object to me splitting off complex add and addressing your remaining
> feedback later when the rewrite of mul and fma are done.
No, sounds good to me.
Thanks,
Richard
Hi Richard,
Do you object to me splitting off complex add and addressing your remaining
feedback later when the rewrite of mul and fma are done.
Thanks,
Tamar
From: Richard Sandiford
Sent: Monday, December 14, 2020 1:30 PM
To: Tamar Christina
Cc:
Rearranging slightly…
> @@ -708,6 +713,10 @@ (define_c_enum "unspec"
> UNSPEC_FCMLA90 ; Used in aarch64-simd.md.
> UNSPEC_FCMLA180 ; Used in aarch64-simd.md.
> UNSPEC_FCMLA270 ; Used in aarch64-simd.md.
> +UNSPEC_FCMUL ; Used in aarch64-simd.md.
> +UNSPEC_FCMUL180
> -Original Message-
> From: Tamar Christina
> Sent: 10 December 2020 17:00
> To: gcc-patches@gcc.gnu.org
> Cc: nd ; Richard Earnshaw ;
> Marcus Shawcroft ; Kyrylo Tkachov
> ; Richard Sandiford
>
> Subject: [PATCH]AArch64: Add NEON, SVE and SVE2 RTL patterns for
> Complex Addition,
Hi All,
This adds implementation for the optabs for complex operations. With this the
following C code:
void f90 (float complex a[restrict N], float complex b[restrict N],
float complex c[restrict N])
{
for (int i=0; i < N; i++)
c[i] = a[i] + (b[i] * I);
}
generates