]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/config/ia64/div.md
re PR target/35695 (-funroll-loops breaks inline float divide)
[thirdparty/gcc.git] / gcc / config / ia64 / div.md
index e66a8a052882653feefd51d2548c5260e2b071e3..45e745963c261136483199fbfbd29545d7925ff8 100644 (file)
         (if_then_else:RF (ne:RF (match_operand:BI 1 "register_operand"  "c,c")
                                 (const_int 0))
           (minus:RF
-            (match_operand:RF 2 "fr_reg_or_fp01_operand" "fg,fG")
+            (match_operand:RF 2 "fr_reg_or_fp01_operand" "fG,fG")
             (mult:RF
-              (match_operand:RF 3 "fr_reg_or_fp01_operand" "fg,fG")
-              (match_operand:RF 4 "fr_reg_or_fp01_operand" "fg,fG")))
+              (match_operand:RF 3 "fr_reg_or_fp01_operand" "fG,fG")
+              (match_operand:RF 4 "fr_reg_or_fp01_operand" "fG,fG")))
           (match_operand:RF 5 "fr_reg_or_0_operand" "0,H")))
    (use (match_operand:SI 6 "const_int_operand" ""))
    (use (match_operand:SI 7 "const_int_operand" ""))]
 ;; to be written for RFmode only and to not have to handle multiple
 ;; modes or to have to handle a register in more than one mode.
 
-(define_mode_macro SDX_F [SF DF XF])
+(define_mode_iterator SDX_F [SF DF XF])
 
 (define_insn "extend<mode>rf2"
   [(set (match_operand:RF 0 "fr_register_operand" "=f")
 
 (define_insn "recip_approx_rf"
   [(set (match_operand:RF 0 "fr_register_operand" "=f")
-        (div:RF (match_operand:RF 1 "fr_register_operand" "f")
-                (match_operand:RF 2 "fr_register_operand" "f")))
+        (unspec:RF [(match_operand:RF 1 "fr_register_operand" "f")
+                   (match_operand:RF 2 "fr_register_operand" "f")]
+                  UNSPEC_FR_RECIP_APPROX_RES))
    (set (match_operand:BI 3 "register_operand" "=c")
         (unspec:BI [(match_dup 1) (match_dup 2)] UNSPEC_FR_RECIP_APPROX))
    (use (match_operand:SI 4 "const_int_operand" ""))]