return AS1 (jmp,%*%0);
}")
+;; ??? could transform while(--i > 0) S; to if (--i > 0) do S; while(--i);
+;; if S does not change i
+
(define_expand "decrement_and_branch_until_zero"
[(parallel [(set (pc)
(if_then_else (ge (plus:SI (match_operand:SI 0 "general_operand" "")
(define_insn ""
[(set (pc)
- (if_then_else (match_operator 0 "comparison_operator"
+ (if_then_else (match_operator 0 "arithmetic_comparison_operator"
[(plus:SI (match_operand:SI 1 "general_operand" "+r,m")
(match_operand:SI 2 "general_operand" "rmi,ri"))
(const_int 0)])
(define_insn ""
[(set (pc)
- (if_then_else (match_operator 0 "comparison_operator"
+ (if_then_else (match_operator 0 "arithmetic_comparison_operator"
[(minus:SI (match_operand:SI 1 "general_operand" "+r,m")
(match_operand:SI 2 "general_operand" "rmi,ri"))
(const_int 0)])