re PR target/69416 (Nonsense rtl checking failure)
authorRichard Henderson <rth@redhat.com>
Fri, 22 Jan 2016 17:21:41 +0000 (09:21 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 22 Jan 2016 17:21:41 +0000 (09:21 -0800)
PR target/69416

  * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
  (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.

From-SVN: r232737

gcc/ChangeLog
gcc/config/aarch64/aarch64.md

index 4a5665f..85cde94 100644 (file)
@@ -1,3 +1,9 @@
+2016-01-22  Richard Henderson  <rth@redhat.com>
+
+       PR target/69416
+       * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
+       (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
+
 2016-01-22  Michael Matz  <matz@suse.de>
 
        * system.h (string, algorithm): Include only conditionally.
index 2f543aa..71fc514 100644 (file)
     UNSPEC_RSQRT
     UNSPEC_RSQRTE
     UNSPEC_RSQRTS
+    UNSPEC_NZCV
 ])
 
 (define_c_enum "unspecv" [
          (compare:CC
            (match_operand:GPI 2 "register_operand" "r,r,r")
            (match_operand:GPI 3 "aarch64_ccmp_operand" "r,Uss,Usn"))
-         (match_operand 5 "immediate_operand")))]
+         (unspec:CC [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
   ""
   "@
    ccmp\\t%<w>2, %<w>3, %k5, %m4
          (compare:CCFP
            (match_operand:GPF 2 "register_operand" "w")
            (match_operand:GPF 3 "register_operand" "w"))
-         (match_operand 5 "immediate_operand")))]
+         (unspec:CCFP [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
   "TARGET_FLOAT"
   "fccmp\\t%<s>2, %<s>3, %k5, %m4"
   [(set_attr "type" "fcmp<s>")]
           (compare:CCFPE
            (match_operand:GPF 2 "register_operand" "w")
            (match_operand:GPF 3 "register_operand" "w"))
-         (match_operand 5 "immediate_operand")))]
+         (unspec:CCFPE [(match_operand 5 "immediate_operand")] UNSPEC_NZCV)))]
   "TARGET_FLOAT"
   "fccmpe\\t%<s>2, %<s>3, %k5, %m4"
   [(set_attr "type" "fcmp<s>")]