public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site
@ 2020-05-29 18:11 evan@coeus-group.com
  2020-05-29 18:30 ` [Bug target/95421] " evan@coeus-group.com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: evan@coeus-group.com @ 2020-05-29 18:11 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95421

            Bug ID: 95421
           Summary: [AArch64] Missing NEON functions documented on ARM's
                    web site
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: evan@coeus-group.com
  Target Milestone: ---

Created attachment 48636
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48636&action=edit
Full list of missing functions

This is a companion to #95399 (which is for the arm headers instead of
aarch64).

Quite a few functions listed in ARM's documentation
(<https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics>)
don't seem to be included in GCC's AArch64 arm_{neon,bf16,fp16}.h.

The attached list of 253 functions was generated by just grepping
arm_{neon,bf16,fp16}.h for each function in ARM's documentation so it's
possible there are some false positives, but the ones I've checked manually
seem correct. I'm also not sure how accurate ARM's documentation is.

Several functions are actually present in arm but not aarch64, I'm guessing
that will be an easy place to start.  Here is that list:

  vadd_p16
  vadd_p64
  vadd_p8
  vaddq_p128
  vaddq_p16
  vaddq_p64
  vaddq_p8
  vceqq_p64
  vceqz_p64
  vceqzq_p64
  vcvt_high_bf16_f32
  vcvt_low_bf16_f32
  vld2_lane_bf16
  vld2q_lane_bf16
  vld3_lane_bf16
  vld3q_lane_bf16
  vld4_lane_bf16
  vld4q_lane_bf16
  vrndns_f32
  vst2_lane_bf16
  vst2q_lane_bf16
  vst3_lane_bf16
  vst3q_lane_bf16
  vst3q_lane_p8
  vst3q_lane_s8
  vst3q_lane_u8
  vst4_lane_bf16
  vst4q_lane_bf16

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/95421] [AArch64] Missing NEON functions documented on ARM's web site
  2020-05-29 18:11 [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site evan@coeus-group.com
@ 2020-05-29 18:30 ` evan@coeus-group.com
  2020-06-03  9:25 ` clyon at gcc dot gnu.org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: evan@coeus-group.com @ 2020-05-29 18:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95421

--- Comment #1 from Evan Nemerson <evan@coeus-group.com> ---
> Several functions are actually present in arm but not aarch64, I'm guessing
> that will be an easy place to start.  Here is that list:

I pasted the wrong list here; that is actually the list of functions which are
missing from both arm and aarch64.  The attached list is accurate (AFAICT).  It
looks like the majority of functions missing from aarch64 are present in arm
(and vice versa), so hopefully this should be a bit easier to fix than I
thought.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/95421] [AArch64] Missing NEON functions documented on ARM's web site
  2020-05-29 18:11 [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site evan@coeus-group.com
  2020-05-29 18:30 ` [Bug target/95421] " evan@coeus-group.com
@ 2020-06-03  9:25 ` clyon at gcc dot gnu.org
  2020-09-11 12:40 ` sripar01 at gcc dot gnu.org
  2020-09-11 12:56 ` clyon at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-06-03  9:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95421

Christophe Lyon <clyon at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clyon at gcc dot gnu.org

--- Comment #2 from Christophe Lyon <clyon at gcc dot gnu.org> ---
See also:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71233
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70369

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/95421] [AArch64] Missing NEON functions documented on ARM's web site
  2020-05-29 18:11 [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site evan@coeus-group.com
  2020-05-29 18:30 ` [Bug target/95421] " evan@coeus-group.com
  2020-06-03  9:25 ` clyon at gcc dot gnu.org
@ 2020-09-11 12:40 ` sripar01 at gcc dot gnu.org
  2020-09-11 12:56 ` clyon at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: sripar01 at gcc dot gnu.org @ 2020-09-11 12:40 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95421

SRINATH PARVATHANENI <sripar01 at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sripar01 at gcc dot gnu.org

--- Comment #3 from SRINATH PARVATHANENI <sripar01 at gcc dot gnu.org> ---
I see following intrinsics for AArch64 already implemented.
  vst3q_lane_p8
  vst3q_lane_s8
  vst3q_lane_u8 

__extension__ extern __inline void __attribute__ ((__always_inline__,
__gnu_inline__, __artificial__)) vst3q_lane_p8 (poly8_t *__ptr, poly8x16x3_t
__b, const int __c) { union { poly8x16x3_t __i; __builtin_aarch64_simd_ci __o;
} __temp = { __b }; __builtin_aarch64_st3_lanev16qi ((__builtin_aarch64_simd_qi
*) __ptr, __temp.__o, __c); }
__extension__ extern __inline void __attribute__ ((__always_inline__,
__gnu_inline__, __artificial__)) vst3q_lane_s8 (int8_t *__ptr, int8x16x3_t __b,
const int __c) { union { int8x16x3_t __i; __builtin_aarch64_simd_ci __o; }
__temp = { __b }; __builtin_aarch64_st3_lanev16qi ((__builtin_aarch64_simd_qi
*) __ptr, __temp.__o, __c); }
__extension__ extern __inline void __attribute__ ((__always_inline__,
__gnu_inline__, __artificial__)) vst3q_lane_u8 (uint8_t *__ptr, uint8x16x3_t
__b, const int __c) { union { uint8x16x3_t __i; __builtin_aarch64_simd_ci __o;
} __temp = { __b }; __builtin_aarch64_st3_lanev16qi ((__builtin_aarch64_simd_qi
*) __ptr, __temp.__o, __c); }

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bug target/95421] [AArch64] Missing NEON functions documented on ARM's web site
  2020-05-29 18:11 [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site evan@coeus-group.com
                   ` (2 preceding siblings ...)
  2020-09-11 12:40 ` sripar01 at gcc dot gnu.org
@ 2020-09-11 12:56 ` clyon at gcc dot gnu.org
  3 siblings, 0 replies; 5+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-09-11 12:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95421

--- Comment #4 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to SRINATH PARVATHANENI from comment #3)
> I see following intrinsics for AArch64 already implemented.
>   vst3q_lane_p8
>   vst3q_lane_s8
>   vst3q_lane_u8 
> 

Yes, they are missing in the arm port.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-09-11 12:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-29 18:11 [Bug target/95421] New: [AArch64] Missing NEON functions documented on ARM's web site evan@coeus-group.com
2020-05-29 18:30 ` [Bug target/95421] " evan@coeus-group.com
2020-06-03  9:25 ` clyon at gcc dot gnu.org
2020-09-11 12:40 ` sripar01 at gcc dot gnu.org
2020-09-11 12:56 ` clyon at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).