gcc/ChangeLog:

        * config/xtensa/xtensa.md (*extzvsi-1bit_ashlsi3):
        Retract excessive line folding, and correct the value of
        the "length" insn attribute related to TARGET_DENSITY.
        (*extzvsi-1bit_addsubx): Ditto.
---
 gcc/config/xtensa/xtensa.md | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index 6c1d8ee8f81..11258125165 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -1009,8 +1009,7 @@
        (ashift:SI (match_dup 0)
                   (match_dup 3)))]
 {
-  int pos = INTVAL (operands[2]),
-      shift = floor_log2 (INTVAL (operands[3]));
+  int pos = INTVAL (operands[2]), shift = floor_log2 (INTVAL (operands[3]));
   switch (GET_CODE (operands[4]))
     {
     case ASHIFT:
@@ -1029,7 +1028,10 @@
 }
   [(set_attr "type"    "arith")
    (set_attr "mode"    "SI")
-   (set_attr "length"  "6")])
+   (set (attr "length")
+        (if_then_else (match_test "TARGET_DENSITY && INTVAL (operands[3]) == 
2")
+                     (const_int 5)
+                     (const_int 6)))])
 
 (define_insn_and_split "*extzvsi-1bit_addsubx"
   [(set (match_operand:SI 0 "register_operand" "=a")
@@ -1053,8 +1055,7 @@
                            (match_dup 4))
                 (match_dup 2)]))]
 {
-  int pos = INTVAL (operands[3]),
-      shift = floor_log2 (INTVAL (operands[4]));
+  int pos = INTVAL (operands[3]), shift = floor_log2 (INTVAL (operands[4]));
   switch (GET_CODE (operands[6]))
     {
     case ASHIFT:
-- 
2.30.2
  • [PATCH 1/3] xtensa: Addendum ... Takayuki 'January June' Suwa via Gcc-patches

Reply via email to