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 *);
13 DT_mode, DT_code, DT_veclen,
14 DT_elt_zero_int, DT_elt_one_int, DT_elt_zero_wide, DT_elt_zero_wide_safe,
16 DT_veclen_ge, DT_dup, DT_pred, DT_c_test,
17 DT_accept_op, DT_accept_insn
22 struct decision_test *next;
23 enum decision_type type;
43 int num_clobbers_to_add;
49 RECOG, SPLIT, PEEPHOLE2
53 write_cond (struct decision_test *p, int depth,
54 enum routine_type subroutine_type)
59 printf ("peep2_current_count >= %d", p->u.num_insns);
63 printf ("GET_CODE (x%d) == ", depth);
67 printf ("XVECLEN (x%d, 0) == %d", depth, p->u.veclen);
71 printf ("XINT (x%d, 0) == %d", depth, (int) p->u.intval);
75 printf ("XINT (x%d, 1) == %d", depth, (int) p->u.intval);
78 case DT_elt_zero_wide:
79 case DT_elt_zero_wide_safe:
80 printf ("XWINT (x%d, 0) == ", depth);
81 print_host_wide_int (p->u.intval);
85 printf ("x%d == const_int_rtx[MAX_SAVED_CONST_INT + (%d)]",
86 depth, (int) p->u.intval);
90 printf ("XVECLEN (x%d, 0) >= %d", depth, p->u.veclen);
94 printf ("rtx_equal_p (x%d, operands[%d])", depth, p->u.dup);
98 printf ("%s (x%d)", p->u.pred.name, depth);
102 print_c_condition (p->u.c_test);
106 ((void)(__builtin_expect(!(subroutine_type == RECOG), 0) ? __builtin_unreachable(), 0 : 0));
107 ((void)(__builtin_expect(!(p->u.insn.num_clobbers_to_add), 0) ? __builtin_unreachable(), 0 : 0));
108 printf ("pnum_clobbers != NULL");
112 __builtin_unreachable();
116 /* { dg-final { scan-assembler "printf" } } */