> On 2 May 2025, at 10:05, Richard Sandiford wrote:
>
> External email: Use caution opening links or attachments
>
>
> Jennifer Schmitz writes:
>> I adjusted the patch to use && !val.is_constant () as check, such that the
>> extraction
>> of the last element is matched by other patterns for
Jennifer Schmitz writes:
> I adjusted the patch to use && !val.is_constant () as check, such that the
> extraction
> of the last element is matched by other patterns for VLS of all vector widths.
> 256-bit and 512-bit VLS are now matched by *vec_extract_dup
> and 1024-bit and 2048-bit by *vec_ext
ail: Use caution opening links or attachments
>>>
>>>
>>>> -Original Message-
>>>> From: Richard Sandiford
>>>> Sent: Friday, April 25, 2025 4:45 PM
>>>> To: Jennifer Schmitz
>>>> Cc: gcc-patches@gcc.gnu.org
>>>> Subje
025 4:45 PM
>>> To: Jennifer Schmitz
>>> Cc: gcc-patches@gcc.gnu.org
>>> Subject: Re: [PATCH] aarch64: Optimize SVE extract last to Neon lane
>>> extract for
>>> 128-bit VLS.
>>>
>>> Jennifer Schmitz writes:
>>>> For the t
> -Original Message-
> From: Jennifer Schmitz
> Sent: Monday, April 28, 2025 11:40 AM
> To: gcc-patches@gcc.gnu.org
> Cc: Richard Sandiford ; Tamar Christina
>
> Subject: Re: [PATCH] aarch64: Optimize SVE extract last to Neon lane extract
> for
> 128-bit
cc-patches@gcc.gnu.org
>> Subject: Re: [PATCH] aarch64: Optimize SVE extract last to Neon lane extract
>> for
>> 128-bit VLS.
>>
>> Jennifer Schmitz writes:
>>> For the test case
>>> int32_t foo (svint32_t x)
>>> {
>>> svbool_t
> -Original Message-
> From: Richard Sandiford
> Sent: Friday, April 25, 2025 4:45 PM
> To: Jennifer Schmitz
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH] aarch64: Optimize SVE extract last to Neon lane extract
> for
> 128-bit VLS.
>
> Jennifer Sch
Jennifer Schmitz writes:
> For the test case
> int32_t foo (svint32_t x)
> {
> svbool_t pg = svpfalse ();
> return svlastb_s32 (pg, x);
> }
> compiled with -O3 -mcpu=grace -msve-vector-bits=128, GCC produced:
> foo:
> pfalse p3.b
> lastb w0, p3, z0.s
> ret
> when it could us
For the test case
int32_t foo (svint32_t x)
{
svbool_t pg = svpfalse ();
return svlastb_s32 (pg, x);
}
compiled with -O3 -mcpu=grace -msve-vector-bits=128, GCC produced:
foo:
pfalse p3.b
lastb w0, p3, z0.s
ret
when it could use a Neon lane extract instead:
foo: