[Pingx3][GCC][PATCH][ARM]Add ACLE intrinsics for dot product (vusdot - vector, v<us/su>dot - by element) for AArch32 AdvSIMD ARMv8.6 Extension
Stam Markianos-Wright
stam.markianos-wright@arm.com
Tue Feb 11 11:19:00 GMT 2020
On 2/11/20 10:25 AM, Kyrill Tkachov wrote:
> Hi Stam,
>
> On 2/10/20 1:35 PM, Stam Markianos-Wright wrote:
>>
>>
>> On 2/3/20 11:20 AM, Stam Markianos-Wright wrote:
>> >
>> >
>> > On 1/27/20 3:54 PM, Stam Markianos-Wright wrote:
>> >>
>> >> On 1/16/20 4:05 PM, Stam Markianos-Wright wrote:
>> >>>
>> >>>
>> >>> On 1/10/20 6:48 PM, Stam Markianos-Wright wrote:
>> >>>>
>> >>>>
>> >>>> On 12/18/19 1:25 PM, Stam Markianos-Wright wrote:
>> >>>>>
>> >>>>>
>> >>>>> On 12/13/19 10:22 AM, Stam Markianos-Wright wrote:
>> >>>>>> Hi all,
>> >>>>>>
>> >>>>>> This patch adds the ARMv8.6 Extension ACLE intrinsics for dot product
>> >>>>>> operations (vector/by element) to the ARM back-end.
>> >>>>>>
>> >>>>>> These are:
>> >>>>>> usdot (vector), <us/su>dot (by element).
>> >>>>>>
>> >>>>>> The functions are optional from ARMv8.2-a as -march=armv8.2-a+i8mm and
>> >>>>>> for ARM they remain optional as of ARMv8.6-a.
>> >>>>>>
>> >>>>>> The functions are declared in arm_neon.h, RTL patterns are defined to
>> >>>>>> generate assembler and tests are added to verify and perform adequate
>> checks.
>> >>>>>>
>> >>>>>> Regression testing on arm-none-eabi passed successfully.
>> >>>>>>
>> >>>>>> This patch depends on:
>> >>>>>>
>> >>>>>> https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02195.html
>> >>>>>>
>> >>>>>> for ARM CLI updates, and on:
>> >>>>>>
>> >>>>>> https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00857.html
>> >>>>>>
>> >>>>>> for testsuite effective_target update.
>> >>>>>>
>> >>>>>> Ok for trunk?
>> >>>>>
>> >>>>
>> >>>> New diff addressing review comments from Aarch64 version of the patch.
>> >>>>
>> >>>> _Change of order of operands in RTL patterns.
>> >>>> _Change tests to use check-function-bodies, compile with optimisation and
>> >>>> check for exact registers.
>> >>>> _Rename tests to remove "-compile-" in filename.
>> >>>>
>> >>>
>> > .Ping!
>>
>> Ping :)
>>
>> Diff re-attached in this ping email is same as the one posted on 10/01
>>
>> Thank you!
>
>
> Sorry for the delay.
>
> This is ok.
No worries, thank you!
Committed as r10-6575.
Cheers,
Stam
>
> Thanks,
>
> Kyrill
>
>
>> > .
>> >>>
>> >>> Cheers,
>> >>> Stam
>> >>>
>> >>>>>>
>> >>>>>>
>> >>>>>> ACLE documents are at https://developer.arm.com/docs/101028/latest
>> >>>>>> ISA documents are at https://developer.arm.com/docs/ddi0596/latest
>> >>>>>>
>> >>>>>> PS. I don't have commit rights, so if someone could commit on my behalf,
>> >>>>>> that would be great :)
>> >>>>>>
>> >>>>>>
>> >>>>>> gcc/ChangeLog:
>> >>>>>>
>> >>>>>> 2019-11-28Â Stam Markianos-Wright <stam.markianos-wright@arm.com>
>> >>>>>>
>> >>>>>> Â Â Â Â Â * config/arm/arm-builtins.c (enum arm_type_qualifiers):
>> >>>>>> Â Â Â Â Â (USTERNOP_QUALIFIERS): New define.
>> >>>>>> Â Â Â Â Â (USMAC_LANE_QUADTUP_QUALIFIERS): New define.
>> >>>>>> Â Â Â Â Â (SUMAC_LANE_QUADTUP_QUALIFIERS): New define.
>> >>>>>> Â Â Â Â Â (arm_expand_builtin_args):
>> >>>>>> Â Â Â Â Â Â Â Â Add case ARG_BUILTIN_LANE_QUADTUP_INDEX.
>> >>>>>> Â Â Â Â Â (arm_expand_builtin_1): Add qualifier_lane_quadtup_index.
>> >>>>>> Â Â Â Â Â * config/arm/arm_neon.h (vusdot_s32): New.
>> >>>>>> Â Â Â Â Â (vusdot_lane_s32): New.
>> >>>>>> Â Â Â Â Â (vusdotq_lane_s32): New.
>> >>>>>> Â Â Â Â Â (vsudot_lane_s32): New.
>> >>>>>> Â Â Â Â Â (vsudotq_lane_s32): New.
>> >>>>>> Â Â Â Â Â * config/arm/arm_neon_builtins.def
>> >>>>>> (usdot,usdot_lane,sudot_lane): New.
>> >>>>>> Â Â Â Â Â * config/arm/iterators.md (DOTPROD_I8MM): New.
>> >>>>>> Â Â Â Â Â Â Â Â (sup, opsuffix): Add <us/su>.
>> >>>>>> Â Â Â Â Â Â Â * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New.
>> >>>>>> Â Â Â Â Â * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New.
>> >>>>>>
>> >>>>>>
>> >>>>>> gcc/testsuite/ChangeLog:
>> >>>>>>
>> >>>>>> 2019-12-12Â Stam Markianos-Wright <stam.markianos-wright@arm.com>
>> >>>>>>
>> >>>>>> Â Â Â Â Â * gcc.target/arm/simd/vdot-2-1.c: New test.
>> >>>>>> Â Â Â Â Â * gcc.target/arm/simd/vdot-2-2.c: New test.
>> >>>>>> Â Â Â Â Â * gcc.target/arm/simd/vdot-2-3.c: New test.
>> >>>>>> Â Â Â Â Â * gcc.target/arm/simd/vdot-2-4.c: New test.
>> >>>>>>
>> >>>>>>
>> >>>>
More information about the Gcc-patches
mailing list