1 /* PR rtl-optimization/51187 */
2 /* Reported by Jurij Smakov <jurij@wooyd.org> */
4 /* { dg-do compile } */
5 /* { dg-options "-g -O2" } */
7 extern int printf (__const
char *__restrict __format
, ...);
8 extern void print_c_condition (const char *);
9 extern void print_host_wide_int (long);
14 DT_mode
, DT_code
, DT_veclen
,
15 DT_elt_zero_int
, DT_elt_one_int
, DT_elt_zero_wide
, DT_elt_zero_wide_safe
,
17 DT_veclen_ge
, DT_dup
, DT_pred
, DT_c_test
,
18 DT_accept_op
, DT_accept_insn
23 struct decision_test
*next
;
24 enum decision_type type
;
44 int num_clobbers_to_add
;
50 RECOG
, SPLIT
, PEEPHOLE2
54 write_cond (struct decision_test
*p
, int depth
,
55 enum routine_type subroutine_type
)
60 printf ("peep2_current_count >= %d", p
->u
.num_insns
);
64 printf ("GET_CODE (x%d) == ", depth
);
68 printf ("XVECLEN (x%d, 0) == %d", depth
, p
->u
.veclen
);
72 printf ("XINT (x%d, 0) == %d", depth
, (int) p
->u
.intval
);
76 printf ("XINT (x%d, 1) == %d", depth
, (int) p
->u
.intval
);
79 case DT_elt_zero_wide
:
80 case DT_elt_zero_wide_safe
:
81 printf ("XWINT (x%d, 0) == ", depth
);
82 print_host_wide_int (p
->u
.intval
);
86 printf ("x%d == const_int_rtx[MAX_SAVED_CONST_INT + (%d)]",
87 depth
, (int) p
->u
.intval
);
91 printf ("XVECLEN (x%d, 0) >= %d", depth
, p
->u
.veclen
);
95 printf ("rtx_equal_p (x%d, operands[%d])", depth
, p
->u
.dup
);
99 printf ("%s (x%d)", p
->u
.pred
.name
, depth
);
103 print_c_condition (p
->u
.c_test
);
107 ((void)(__builtin_expect(!(subroutine_type
== RECOG
), 0) ? __builtin_unreachable(), 0 : 0));
108 ((void)(__builtin_expect(!(p
->u
.insn
.num_clobbers_to_add
), 0) ? __builtin_unreachable(), 0 : 0));
109 printf ("pnum_clobbers != NULL");
113 __builtin_unreachable();
117 /* { dg-final { scan-assembler "printf" } } */