public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing
@ 2020-05-29  0:00 evan@coeus-group.com
  2020-05-29  8:13 ` [Bug target/95399] " ktkachov at gcc dot gnu.org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: evan@coeus-group.com @ 2020-05-29  0:00 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 95399
           Summary: [ARM, AArch64] 32/64-bit vcvtnq_* functions are
                    missing
           Product: gcc
           Version: 10.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: evan@coeus-group.com
  Target Milestone: ---

Documentation:
https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics?search=vcvtnq

Clang supports them: https://godbolt.org/z/xsMfSz

It looks like vcvtnq_s32_f32, vcvtnq_u32_f32, vcvtnq_s64_f64, and
vcvtnq_u64_f64 are all missing, though vcvtnq_s16_f16 and vcvtnq_u16_f16 are
present.

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

* [Bug target/95399] [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing
  2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
@ 2020-05-29  8:13 ` ktkachov at gcc dot gnu.org
  2020-05-29 16:33 ` evan@coeus-group.com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2020-05-29  8:13 UTC (permalink / raw)
  To: gcc-bugs

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

ktkachov at gcc dot gnu.org changed:

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

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Hmm... I see them present for aarch64 and even in the gotbolt setup you
provided (use ARM64 gcc 8.2)
They do seem to be missing from arm though indeed

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

* [Bug target/95399] [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing
  2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
  2020-05-29  8:13 ` [Bug target/95399] " ktkachov at gcc dot gnu.org
@ 2020-05-29 16:33 ` evan@coeus-group.com
  2020-05-29 16:37 ` [Bug target/95399] [ARM] " ktkachov at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: evan@coeus-group.com @ 2020-05-29 16:33 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Evan Nemerson <evan@coeus-group.com> ---
Created attachment 48635
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48635&action=edit
List of functions missing from 32-bit arm_neon.h

You're right, sorry.  I'm not sure why I was thinking that header was shared.

It looks like there are a *lot* more of these.  Based on a quick script to grep
arm_neon.h for each function listed on ARM's web site
(<https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics>)
as v7/A32 or v7/A32/A64 there are 47 functions missing (plus another 108 if you
include the *_x1/2/3/4 functions, and another 145 if you include the
poly/f16/bf16 stuff).

Here is a list of those first 47:

  vcvtaq_s32_f32
  vcvtaq_u32_f32
  vcvta_s32_f32
  vcvta_u32_f32
  vcvtmq_s32_f32
  vcvtmq_u32_f32
  vcvtm_s32_f32
  vcvtm_u32_f32
  vcvtnq_s32_f32
  vcvtnq_u32_f32
  vcvtn_s32_f32
  vcvtn_u32_f32
  vcvtpq_s32_f32
  vcvtpq_u32_f32
  vcvtp_s32_f32
  vcvtp_u32_f32
  vfma_n_f32
  vfmaq_n_f32
  vld2q_dup_f32
  vld2q_dup_s16
  vld2q_dup_s32
  vld2q_dup_s8
  vld2q_dup_u16
  vld2q_dup_u32
  vld2q_dup_u8
  vld3q_dup_f32
  vld3q_dup_s16
  vld3q_dup_s32
  vld3q_dup_s8
  vld3q_dup_u16
  vld3q_dup_u32
  vld3q_dup_u8
  vld4q_dup_f32
  vld4q_dup_s16
  vld4q_dup_s32
  vld4q_dup_s8
  vld4q_dup_u16
  vld4q_dup_u32
  vld4q_dup_u8
  vreinterpretq_f64_u64
  vrndi_f32
  vrndiq_f32
  vrndn_f64
  vrndnq_f64
  vrndns_f32
  vst3q_lane_s8
  vst3q_lane_u8

I'm not sure how reliable ARM's documentation is... I see that there are
several f64 functions in that list, and I always thought those were supposed to
be exclusive to AArch64.  Assuming ARM's documentation is accurate, though, all
the functions I've checked do seem to be legitimately missing (i.e., I haven't
seen any false positives from my script).

I'm attaching the full list (300 functions), not sure how you want me to handle
this.  Should I file separate bugs for each group (i.e., this one could be for
vcvt*, another one for vrnd*, another for vfma*, etc.)?  One for all of them? 
Or just use this bug for all of them?

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

* [Bug target/95399] [ARM] 32/64-bit vcvtnq_* functions are missing
  2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
  2020-05-29  8:13 ` [Bug target/95399] " ktkachov at gcc dot gnu.org
  2020-05-29 16:33 ` evan@coeus-group.com
@ 2020-05-29 16:37 ` ktkachov at gcc dot gnu.org
  2020-05-29 18:34 ` evan@coeus-group.com
  2020-06-03  9:24 ` clyon at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2020-05-29 16:37 UTC (permalink / raw)
  To: gcc-bugs

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

ktkachov at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2020-05-29

--- Comment #3 from ktkachov at gcc dot gnu.org ---
Thanks for this. Having this bug listing all of the missing intrinsics is fine.
If you are willing to do the same for the aarch64 functions (keep in mind there
are other include files like arm_fp16.h and arm_bf16.h involved) that would be
a  good separate report

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

* [Bug target/95399] [ARM] 32/64-bit vcvtnq_* functions are missing
  2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
                   ` (2 preceding siblings ...)
  2020-05-29 16:37 ` [Bug target/95399] [ARM] " ktkachov at gcc dot gnu.org
@ 2020-05-29 18:34 ` evan@coeus-group.com
  2020-06-03  9:24 ` clyon at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: evan@coeus-group.com @ 2020-05-29 18:34 UTC (permalink / raw)
  To: gcc-bugs

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

Evan Nemerson <evan@coeus-group.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #48635|0                           |1
        is obsolete|                            |

--- Comment #4 from Evan Nemerson <evan@coeus-group.com> ---
Created attachment 48637
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48637&action=edit
List of functions missing from 32-bit arm_{neon,fp16,bf16}.h

Sure, I just filed #95421 for AArch64.

Thanks for the note about arm_fp16.h and arm_bf16.h; I hadn't realized those
functions were in separate headers.  That bring the total down to 264
functions, of which 236 are present in the AArch64 version.  Here is the
updated list.

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

* [Bug target/95399] [ARM] 32/64-bit vcvtnq_* functions are missing
  2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
                   ` (3 preceding siblings ...)
  2020-05-29 18:34 ` evan@coeus-group.com
@ 2020-06-03  9:24 ` clyon at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: clyon at gcc dot gnu.org @ 2020-06-03  9:24 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #5 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] 6+ messages in thread

end of thread, other threads:[~2020-06-03  9:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-29  0:00 [Bug target/95399] New: [ARM, AArch64] 32/64-bit vcvtnq_* functions are missing evan@coeus-group.com
2020-05-29  8:13 ` [Bug target/95399] " ktkachov at gcc dot gnu.org
2020-05-29 16:33 ` evan@coeus-group.com
2020-05-29 16:37 ` [Bug target/95399] [ARM] " ktkachov at gcc dot gnu.org
2020-05-29 18:34 ` evan@coeus-group.com
2020-06-03  9:24 ` 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).