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" } } */