1 (define_predicate "trapping_target_operand"
2 (match_code "if_then_else")
4 rtx cond, mem, res, tar, and;
6 if (GET_MODE (op) != PDImode)
11 if (GET_CODE (mem) != MEM
12 || (GET_CODE (res) != SIGN_EXTEND && GET_CODE (res) != TRUNCATE))
15 if (!rtx_equal_p (XEXP (mem, 0), tar)
16 || GET_MODE (tar) != Pmode)
18 if (GET_CODE (cond) == CONST)
20 cond = XEXP (cond, 0);
21 if (!EXTRA_CONSTRAINT_Csy (tar))
23 if (GET_CODE (tar) == CONST)
26 else if (!arith_reg_operand (tar, VOIDmode)
27 && ! EXTRA_CONSTRAINT_Csy (tar))
29 if (GET_CODE (cond) != EQ)
32 return (GET_CODE (and) == AND
33 && rtx_equal_p (XEXP (and, 0), tar)
34 && GET_CODE (XEXP (and, 1)) == CONST_INT
35 && GET_CODE (XEXP (cond, 1)) == CONST_INT
36 && INTVAL (XEXP (and, 1)) == 3
37 && INTVAL (XEXP (cond, 1)) == 3);