* arm.md (mulhi3): New expand pattern.
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 30 Jul 2013 15:54:30 +0000 (15:54 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Tue, 30 Jul 2013 15:54:30 +0000 (15:54 +0000)
From-SVN: r201341

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

index b99e074067c90bb0edea9df66009532d9c3347bc..e6550fd0a5cc2c8ea3b9b379009d56f1fc0f4c74 100644 (file)
@@ -1,3 +1,7 @@
+2013-07-30  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.md (mulhi3): New expand pattern.
+
 2013-07-30  Jan Hubicka  <jh@suse.cz>
            Martin Liska  <marxin.liska@gmail.com>
 
index fceb04c12726ca269331a5dbe2e8fabdab2f054b..0aa8aca3227d66653f3a804d8f764f1cba940e04 100644 (file)
 \f
 ;; Multiplication insns
 
+(define_expand "mulhi3"
+  [(set (match_operand:HI 0 "s_register_operand" "")
+       (mult:HI (match_operand:HI 1 "s_register_operand" "")
+                (match_operand:HI 2 "s_register_operand" "")))]
+  "TARGET_DSP_MULTIPLY"
+  "
+  {
+    rtx result = gen_reg_rtx (SImode);
+    emit_insn (gen_mulhisi3 (result, operands[1], operands[2]));
+    emit_move_insn (operands[0], gen_lowpart (HImode, result));
+    DONE;
+  }"
+)
+
 (define_expand "mulsi3"
   [(set (match_operand:SI          0 "s_register_operand" "")
        (mult:SI (match_operand:SI 2 "s_register_operand" "")