msp430.md (ashlhi3): Optimize one bit shifts.
authorDJ Delorie <dj@redhat.com>
Mon, 25 Apr 2016 11:59:44 +0000 (07:59 -0400)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 25 Apr 2016 11:59:44 +0000 (11:59 +0000)
* config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
(ashrhi3): Likewise.
(lshrhi3): Likewise.

From-SVN: r235410

gcc/ChangeLog
gcc/config/msp430/msp430.md

index 2dac38eff7becd79f2c5c9d4deab2ee5ab254b47..8a9a29b61c014b606e46051bab9e7043136b5cb3 100644 (file)
@@ -1,3 +1,9 @@
+2016-04-25  DJ Delorie  <dj@redhat.com>
+
+       * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
+       (ashrhi3): Likewise.
+       (lshrhi3): Likewise.
+
 2016-04-25  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/70780
index 4df49708adb19a893ab7163170b5760cc0c5a81a..abab672a9567050fb27d3ad4ead8925454564a8c 100644 (file)
         && REG_P (operands[1])
         && CONST_INT_P (operands[2]))
       emit_insn (gen_430x_shift_left (operands[0], operands[1], operands[2]));
+    else if (CONST_INT_P (operands[2])
+            && INTVAL (operands[2]) == 1)
+      emit_insn (gen_slli_1 (operands[0], operands[1]));
     else                
       msp430_expand_helper (operands, \"__mspabi_slli\", true);
     DONE;
         && REG_P (operands[1])
         && CONST_INT_P (operands[2]))
       emit_insn (gen_430x_arithmetic_shift_right (operands[0], operands[1], operands[2]));
+    else if (CONST_INT_P (operands[2])
+            && INTVAL (operands[2]) == 1)
+      emit_insn (gen_srai_1 (operands[0], operands[1]));
     else                
        msp430_expand_helper (operands, \"__mspabi_srai\", true);
    DONE;
         && REG_P (operands[1])
         && CONST_INT_P (operands[2]))
       emit_insn (gen_430x_logical_shift_right (operands[0], operands[1], operands[2]));
+    else if (CONST_INT_P (operands[2])
+            && INTVAL (operands[2]) == 1)
+      emit_insn (gen_srli_1 (operands[0], operands[1]));
     else                
       msp430_expand_helper (operands, \"__mspabi_srli\", true);
     DONE;