[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
Mon Feb 10 13:36:00 GMT 2020



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!
> .
>>>
>>> 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.
>>>>>>
>>>>>>
>>>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: I8MM-32-final.patch
Type: text/x-patch
Size: 15372 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20200210/b5a301b1/attachment.bin>


More information about the Gcc-patches mailing list