]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/69810 (PowerPC64: unrecognizable insn)
authorDavid Edelsohn <dje.gcc@gmail.com>
Tue, 23 Feb 2016 22:28:23 +0000 (22:28 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Tue, 23 Feb 2016 22:28:23 +0000 (17:28 -0500)
PR target/69810
* config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
define_insn_and_split to define_insn.
(zero_extendqi<mode>2_dot2): Same.
(extendqi<mode>2_dot): Same.
(extendqi<mode>2_dot2): Same.

From-SVN: r233648

gcc/ChangeLog
gcc/config/rs6000/rs6000.md

index 07b50b5d3a1d9ed669c12de77945ab87793cdc93..0ba100dedf24f9165b0c939ebc43ba9ec1bc5677 100644 (file)
@@ -1,3 +1,12 @@
+2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
+
+       PR target/69810
+       * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
+       define_insn_and_split to define_insn.
+       (zero_extendqi<mode>2_dot2): Same.
+       (extendqi<mode>2_dot): Same.
+       (extendqi<mode>2_dot2): Same.
+
 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
 
        * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
index 365bc5efe1010ce034ed21c1126d7ec119c062f0..0299a0002af2f99f0167f4d20021595eb4553e86 100644 (file)
    rlwinm %0,%1,0,0xff"
   [(set_attr "type" "load,shift")])
 
-(define_insn_and_split "*zero_extendqi<mode>2_dot"
+(define_insn "*zero_extendqi<mode>2_dot"
   [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
        (compare:CC (zero_extend:EXTQI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
   "rs6000_gen_cell_microcode"
   "@
    andi. %0,%1,0xff
-   #"
-  "&& reload_completed && cc_reg_not_cr0_operand (operands[2], CCmode)"
-  [(set (match_dup 0)
-       (zero_extend:EXTQI (match_dup 1)))
-   (set (match_dup 2)
-       (compare:CC (match_dup 0)
-                   (const_int 0)))]
-  ""
+   rlwinm %0,%1,0,0xff\;cmpwi %2,%0,0"
   [(set_attr "type" "logical")
    (set_attr "dot" "yes")
    (set_attr "length" "4,8")])
 
-(define_insn_and_split "*zero_extendqi<mode>2_dot2"
+(define_insn "*zero_extendqi<mode>2_dot2"
   [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
        (compare:CC (zero_extend:EXTQI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
   "rs6000_gen_cell_microcode"
   "@
    andi. %0,%1,0xff
-   #"
-  "&& reload_completed && cc_reg_not_cr0_operand (operands[2], CCmode)"
-  [(set (match_dup 0)
-       (zero_extend:EXTQI (match_dup 1)))
-   (set (match_dup 2)
-       (compare:CC (match_dup 0)
-                   (const_int 0)))]
-  ""
+   rlwinm %0,%1,0,0xff\;cmpwi %2,%0,0"
   [(set_attr "type" "logical")
    (set_attr "dot" "yes")
    (set_attr "length" "4,8")])
   "extsb %0,%1"
   [(set_attr "type" "exts")])
 
-(define_insn_and_split "*extendqi<mode>2_dot"
+(define_insn "*extendqi<mode>2_dot"
   [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
        (compare:CC (sign_extend:EXTQI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
   "rs6000_gen_cell_microcode"
   "@
    extsb. %0,%1
-   #"
-  "&& reload_completed && cc_reg_not_cr0_operand (operands[2], CCmode)"
-  [(set (match_dup 0)
-       (sign_extend:EXTQI (match_dup 1)))
-   (set (match_dup 2)
-       (compare:CC (match_dup 0)
-                   (const_int 0)))]
-  ""
+   extsb %0,%1\;cmpwi %2,%0,0"
   [(set_attr "type" "exts")
    (set_attr "dot" "yes")
    (set_attr "length" "4,8")])
 
-(define_insn_and_split "*extendqi<mode>2_dot2"
+(define_insn "*extendqi<mode>2_dot2"
   [(set (match_operand:CC 2 "cc_reg_operand" "=x,?y")
        (compare:CC (sign_extend:EXTQI (match_operand:QI 1 "gpc_reg_operand" "r,r"))
                    (const_int 0)))
   "rs6000_gen_cell_microcode"
   "@
    extsb. %0,%1
-   #"
-  "&& reload_completed && cc_reg_not_cr0_operand (operands[2], CCmode)"
-  [(set (match_dup 0)
-       (sign_extend:EXTQI (match_dup 1)))
-   (set (match_dup 2)
-       (compare:CC (match_dup 0)
-                   (const_int 0)))]
-  ""
+   extsb %0,%1\;cmpwi %2,%0,0"
   [(set_attr "type" "exts")
    (set_attr "dot" "yes")
    (set_attr "length" "4,8")])