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

            Bug ID: 96030
           Summary: AArch64: Add an option to control 64bits simdclone of
                    math functions for fortran
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bule1 at huawei dot com
  Target Milestone: ---
            Target: AARCH64

Created attachment 48824
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48824&action=edit
patch for the problem

Hi,

I found that currently fortran can only enable simdclone of math functions by
declare "!GCC$ builtin (exp) attributes simd" derivative. This kind of
declaration seems cannot indicate whether the simdlen is 64bits or 128bits. By
reading the source code and some tests, I believe the simdclone of both mode
will be generated with a single derivative declaration. At present, vector math
lib for aarch64  (mathlib and sleef) donot support the 64bits mode functions.
So when I want to enable the simd math on some application, if the application
has an oppotunity for 64bits mode simdclone, there is no matching math library
call, which leads to a link time error. 

For now, to solve this problem, I added a new backend option -msimdmath-64 to
control the generation of the 64bits mode simdclone, which is default to
disable. The patch is attached.

I think it is reasonable to set a switch to control the generation of the
64bits mode simdclone. Do we have something alike already? 

If not, is this the right way to go?

Thanks.

Reply via email to