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

            Bug ID: 68934
           Summary: ARM using simd types should be rejected if not
                    fpu=neon
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chrbr at gcc dot gnu.org
  Target Milestone: ---

the declaration:

--------------
#pragma GCC target ("fpu=vfp")

__simd64_int8_t b;
--------------

legitimately fails with

error: unknown type name '__simd64_int8_t'

However, if the type was previously created as (for instance) with

----------------
#pragma GCC target ("fpu=neon")

__simd64_int8_t a;

#pragma GCC target ("fpu=vfp")

__simd64_int8_t b;
-----------------

then it compiles, but this is wrong for 2 reasons:

1) it's not consistent (the user doesn't know if neon types are available or
not)
2) nothing prevents "b" to be latter used in a code compiled for NEON, creating
discrepancies between modes and possible wrong code (or ICEs)

A mechanism to deactivate SIMD types in arm_set_current_function is needed.

Reply via email to