------- Comment #4 from kkojima at gcc dot gnu dot org 2006-11-07 02:40 -------
If the comparison with a constant is removed from cbranchdi4_i,
the 2nd test case and the original ifcvt.c are compiled successfully.
--- ORIG/trunk/gcc/config/sh/sh.md 2006-11-05 10:02:45.000000000 +0900
+++ TMP/trunk/gcc/config/sh/sh.md 2006-11-07 09:34:22.000000000 +0900
@@ -713,11 +713,11 @@
(define_insn_and_split "cbranchdi4_i"
[(set (pc)
(if_then_else (match_operator 0 "comparison_operator"
- [(match_operand:DI 1 "arith_operand" "r,r")
- (match_operand:DI 2 "arith_operand" "rN,i")])
+ [(match_operand:DI 1 "arith_operand" "r")
+ (match_operand:DI 2 "arith_operand" "rN")])
(label_ref (match_operand 3 "" ""))
(pc)))
- (clobber (match_scratch:SI 4 "=X,&r"))
+ (clobber (match_scratch:SI 4 "=X"))
(clobber (reg:SI T_REG))]
"TARGET_CBRANCHDI4"
"#"
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29746