arm.md (fixuns_truncsfsi2, [...]): New patterns.
authorPaul Brook <paul@codesourcery.com>
Sun, 18 Apr 2004 23:33:05 +0000 (23:33 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Sun, 18 Apr 2004 23:33:05 +0000 (23:33 +0000)
* config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
floatunssisf2, floatunssidf2): New patterns.

From-SVN: r80831

gcc/ChangeLog
gcc/config/arm/vfp.md

index d7b78c3afe17066be3bdfc4395d354fc428f4057..bc284d58b9767ebd5442c50a6272116c33a3a7b9 100644 (file)
@@ -1,3 +1,8 @@
+2004-04-19  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
+       floatunssisf2, floatunssidf2): New patterns.
+
 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
 
        PR other/14918
index dd313a9bdcacc628e47ac5528f21c53e54f71c5f..6f7e2a7a639c4e7b8d6a2488a64603ac691a1530 100644 (file)
    (set_attr "type" "farith")]
 )
 
+
+(define_insn "fixuns_truncsfsi2"
+  [(set (match_operand:SI                0 "s_register_operand" "=w")
+       (unsigned_fix:SI (fix:SF (match_operand:SF 1 "s_register_operand" "w"))))]
+  "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+  "ftouizs%?\\t%0, %1"
+  [(set_attr "predicable" "yes")
+   (set_attr "type" "farith")]
+)
+
+(define_insn "fixuns_truncdfsi2"
+  [(set (match_operand:SI                0 "s_register_operand" "=w")
+       (unsigned_fix:SI (fix:DF (match_operand:DF 1 "s_register_operand" "w"))))]
+  "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+  "ftouizd%?\\t%0, %P1"
+  [(set_attr "predicable" "yes")
+   (set_attr "type" "farith")]
+)
+
+
 (define_insn "*floatsisf2_vfp"
   [(set (match_operand:SF          0 "s_register_operand" "=w")
        (float:SF (match_operand:SI 1 "s_register_operand" "w")))]
 )
 
 
+(define_insn "floatunssisf2"
+  [(set (match_operand:SF          0 "s_register_operand" "=w")
+       (unsigned_float:SF (match_operand:SI 1 "s_register_operand" "w")))]
+  "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+  "fuitos%?\\t%0, %1"
+  [(set_attr "predicable" "yes")
+   (set_attr "type" "farith")]
+)
+
+(define_insn "floatunssidf2"
+  [(set (match_operand:DF          0 "s_register_operand" "=w")
+       (unsigned_float:DF (match_operand:SI 1 "s_register_operand" "w")))]
+  "TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP"
+  "fuitod%?\\t%P0, %1"
+  [(set_attr "predicable" "yes")
+   (set_attr "type" "farith")]
+)
+
+
 ;; Sqrt insns.
 
 (define_insn "*sqrtsf2_vfp"
 ;; fmdhr et al (VFPv1)
 ;; Support for xD (single precision only) variants.
 ;; fmrrs, fmsrr
-;; fuito*
-;; ftoui*