Tested as described in the covering note.  I plan to commit this as obvious
if the prerequisites are approved.

gcc/
        * config/aarch64/aarch64.md (fp): Turn into a code,alternative
        attribute.
        (simd, enabled): Likewise.

diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index d46f837..a6f312f 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -166,12 +166,12 @@
 ;; Attribute that specifies whether or not the instruction touches fp
 ;; registers.  When this is set to yes for an alternative, that alternative
 ;; will be disabled when !TARGET_FLOAT.
-(define_attr "fp" "no,yes" (const_string "no"))
+(define_attr "fp" "no,yes" (const_string "no") "code,alternative")
 
 ;; Attribute that specifies whether or not the instruction touches simd
 ;; registers.  When this is set to yes for an alternative, that alternative
 ;; will be disabled when !TARGET_SIMD.
-(define_attr "simd" "no,yes" (const_string "no"))
+(define_attr "simd" "no,yes" (const_string "no") "code,alternative")
 
 (define_attr "length" ""
   (const_int 4))
@@ -186,7 +186,8 @@
        (and (eq_attr "simd" "yes")
             (eq (symbol_ref "TARGET_SIMD") (const_int 0))))
             (const_string "no")
-       ] (const_string "yes")))
+       ] (const_string "yes"))
+  "code,alternative")
 
 ;; Attribute that specifies whether we are dealing with a branch to a
 ;; label that is far away, i.e. further away than the maximum/minimum

Reply via email to