[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