Lines Matching refs:arg0

1738 const_unop (enum tree_code code, tree type, tree arg0)  in const_unop()  argument
1742 if (TREE_CODE (arg0) == REAL_CST in const_unop()
1743 && HONOR_SNANS (TYPE_MODE (TREE_TYPE (arg0))) in const_unop()
1744 && REAL_VALUE_ISSIGNALING_NAN (TREE_REAL_CST (arg0)) in const_unop()
1756 return fold_convert_const (code, type, arg0); in const_unop()
1761 if (integer_zerop (arg0) in const_unop()
1763 (TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (arg0)))))) in const_unop()
1764 return fold_convert_const (code, type, arg0); in const_unop()
1768 return fold_view_convert_expr (type, arg0); in const_unop()
1775 tree tem = fold_negate_expr (UNKNOWN_LOCATION, arg0); in const_unop()
1783 if (TREE_CODE (arg0) == INTEGER_CST || TREE_CODE (arg0) == REAL_CST) in const_unop()
1784 return fold_abs_const (arg0, type); in const_unop()
1788 if (TREE_CODE (arg0) == COMPLEX_CST) in const_unop()
1790 tree ipart = fold_negate_const (TREE_IMAGPART (arg0), in const_unop()
1792 return build_complex (type, TREE_REALPART (arg0), ipart); in const_unop()
1797 if (TREE_CODE (arg0) == INTEGER_CST) in const_unop()
1798 return fold_not_const (arg0, type); in const_unop()
1799 else if (POLY_INT_CST_P (arg0)) in const_unop()
1800 return wide_int_to_tree (type, -poly_int_cst_value (arg0)); in const_unop()
1802 else if (TREE_CODE (arg0) == VECTOR_CST) in const_unop()
1808 elements.new_unary_operation (type, arg0, true); in const_unop()
1812 elem = VECTOR_CST_ELT (arg0, i); in const_unop()
1824 if (TREE_CODE (arg0) == INTEGER_CST) in const_unop()
1825 return constant_boolean_node (integer_zerop (arg0), type); in const_unop()
1829 if (TREE_CODE (arg0) == COMPLEX_CST) in const_unop()
1830 return fold_convert (type, TREE_REALPART (arg0)); in const_unop()
1834 if (TREE_CODE (arg0) == COMPLEX_CST) in const_unop()
1835 return fold_convert (type, TREE_IMAGPART (arg0)); in const_unop()
1848 if (TREE_CODE (arg0) != VECTOR_CST) in const_unop()
1851 if (!VECTOR_CST_NELTS (arg0).is_constant (&in_nelts)) in const_unop()
1874 VECTOR_CST_ELT (arg0, i + offset)); in const_unop()
1884 if (CONSTANT_CLASS_P (arg0)) in const_unop()
1885 return build_vector_from_val (type, arg0); in const_unop()
1910 size_binop_loc (location_t loc, enum tree_code code, tree arg0, tree arg1) in size_binop_loc() argument
1912 tree type = TREE_TYPE (arg0); in size_binop_loc()
1914 if (arg0 == error_mark_node || arg1 == error_mark_node) in size_binop_loc()
1917 gcc_assert (int_binop_types_match_p (code, TREE_TYPE (arg0), in size_binop_loc()
1921 if (poly_int_tree_p (arg0) && poly_int_tree_p (arg1)) in size_binop_loc()
1926 if (integer_zerop (arg0) in size_binop_loc()
1927 && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg0))) in size_binop_loc()
1931 return arg0; in size_binop_loc()
1937 return arg0; in size_binop_loc()
1941 if (integer_onep (arg0) in size_binop_loc()
1942 && !TREE_OVERFLOW (tree_strip_any_location_wrapper (arg0))) in size_binop_loc()
1949 tree res = int_const_binop (code, arg0, arg1, -1); in size_binop_loc()
1954 return fold_build2_loc (loc, code, type, arg0, arg1); in size_binop_loc()
1962 size_diffop_loc (location_t loc, tree arg0, tree arg1) in size_diffop_loc() argument
1964 tree type = TREE_TYPE (arg0); in size_diffop_loc()
1967 gcc_assert (int_binop_types_match_p (MINUS_EXPR, TREE_TYPE (arg0), in size_diffop_loc()
1972 return size_binop_loc (loc, MINUS_EXPR, arg0, arg1); in size_diffop_loc()
1984 if (TREE_CODE (arg0) != INTEGER_CST || TREE_CODE (arg1) != INTEGER_CST) in size_diffop_loc()
1986 fold_convert_loc (loc, ctype, arg0), in size_diffop_loc()
1993 if (tree_int_cst_equal (arg0, arg1)) in size_diffop_loc()
1995 else if (tree_int_cst_lt (arg1, arg0)) in size_diffop_loc()
1997 size_binop_loc (loc, MINUS_EXPR, arg0, arg1)); in size_diffop_loc()
2003 arg1, arg0))); in size_diffop_loc()
2966 operand_compare::operand_equal_p (const_tree arg0, const_tree arg1, in operand_equal_p() argument
2970 if (verify_hash_value (arg0, arg1, flags, &r)) in operand_equal_p()
2973 STRIP_ANY_LOCATION_WRAPPER (arg0); in operand_equal_p()
2977 if (TREE_CODE (arg0) == ERROR_MARK || TREE_CODE (arg1) == ERROR_MARK in operand_equal_p()
2978 || TREE_TYPE (arg0) == error_mark_node in operand_equal_p()
2984 if (!TREE_TYPE (arg0) || !TREE_TYPE (arg1)) in operand_equal_p()
2989 && !tree_nop_conversion_p (TREE_TYPE (arg0), TREE_TYPE (arg1))) in operand_equal_p()
2993 if (POINTER_TYPE_P (TREE_TYPE (arg0)) in operand_equal_p()
2995 && (TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (arg0))) in operand_equal_p()
3001 if (TREE_CODE (arg0) == INTEGER_CST && TREE_CODE (arg1) == INTEGER_CST) in operand_equal_p()
3006 return tree_int_cst_equal (arg0, arg1); in operand_equal_p()
3016 if (TYPE_UNSIGNED (TREE_TYPE (arg0)) != TYPE_UNSIGNED (TREE_TYPE (arg1)) in operand_equal_p()
3017 || POINTER_TYPE_P (TREE_TYPE (arg0)) in operand_equal_p()
3023 if (element_precision (TREE_TYPE (arg0)) in operand_equal_p()
3027 STRIP_NOPS (arg0); in operand_equal_p()
3037 gcc_checking_assert (!CONVERT_EXPR_P (arg0) && !CONVERT_EXPR_P (arg1) in operand_equal_p()
3038 && TREE_CODE (arg0) != SSA_NAME); in operand_equal_p()
3044 if (TREE_CODE (arg0) != TREE_CODE (arg1) in operand_equal_p()
3045 && COMPARISON_CLASS_P (arg0) in operand_equal_p()
3050 if (TREE_CODE (arg0) == swap_code) in operand_equal_p()
3051 return operand_equal_p (TREE_OPERAND (arg0, 0), in operand_equal_p()
3053 && operand_equal_p (TREE_OPERAND (arg0, 1), in operand_equal_p()
3057 if (TREE_CODE (arg0) != TREE_CODE (arg1)) in operand_equal_p()
3060 if (CONVERT_EXPR_P (arg0) && CONVERT_EXPR_P (arg1)) in operand_equal_p()
3067 if (TREE_CODE (arg0) == MEM_REF in operand_equal_p()
3069 && TREE_CODE (TREE_OPERAND (arg0, 0)) == ADDR_EXPR in operand_equal_p()
3070 && TREE_OPERAND (TREE_OPERAND (arg0, 0), 0) == arg1 in operand_equal_p()
3071 && integer_zerop (TREE_OPERAND (arg0, 1))) in operand_equal_p()
3074 && DECL_P (arg0) in operand_equal_p()
3076 && TREE_OPERAND (TREE_OPERAND (arg1, 0), 0) == arg0 in operand_equal_p()
3087 if (TREE_CODE (TREE_TYPE (arg0)) == ERROR_MARK in operand_equal_p()
3089 || (TYPE_MODE (TREE_TYPE (arg0)) != TYPE_MODE (TREE_TYPE (arg1)) in operand_equal_p()
3102 if (arg0 == arg1 && ! (flags & OEP_ONLY_CONST) in operand_equal_p()
3103 && (TREE_CODE (arg0) == SAVE_EXPR in operand_equal_p()
3105 || (! TREE_SIDE_EFFECTS (arg0) && ! TREE_SIDE_EFFECTS (arg1)))) in operand_equal_p()
3110 if (TREE_CONSTANT (arg0) && TREE_CONSTANT (arg1)) in operand_equal_p()
3111 switch (TREE_CODE (arg0)) in operand_equal_p()
3114 return tree_int_cst_equal (arg0, arg1); in operand_equal_p()
3117 return FIXED_VALUES_IDENTICAL (TREE_FIXED_CST (arg0), in operand_equal_p()
3121 if (real_identical (&TREE_REAL_CST (arg0), &TREE_REAL_CST (arg1))) in operand_equal_p()
3124 if (!(flags & OEP_BITWISE) && !HONOR_SIGNED_ZEROS (arg0)) in operand_equal_p()
3128 if (real_zerop (arg0) && real_zerop (arg1)) in operand_equal_p()
3135 if (VECTOR_CST_LOG2_NPATTERNS (arg0) in operand_equal_p()
3139 if (VECTOR_CST_NELTS_PER_PATTERN (arg0) in operand_equal_p()
3143 unsigned int count = vector_cst_encoded_nelts (arg0); in operand_equal_p()
3145 if (!operand_equal_p (VECTOR_CST_ENCODED_ELT (arg0, i), in operand_equal_p()
3152 return (operand_equal_p (TREE_REALPART (arg0), TREE_REALPART (arg1), in operand_equal_p()
3154 && operand_equal_p (TREE_IMAGPART (arg0), TREE_IMAGPART (arg1), in operand_equal_p()
3158 return (TREE_STRING_LENGTH (arg0) == TREE_STRING_LENGTH (arg1) in operand_equal_p()
3159 && ! memcmp (TREE_STRING_POINTER (arg0), in operand_equal_p()
3161 TREE_STRING_LENGTH (arg0))); in operand_equal_p()
3165 return operand_equal_p (TREE_OPERAND (arg0, 0), TREE_OPERAND (arg1, 0), in operand_equal_p()
3171 return !CONSTRUCTOR_NELTS (arg0) && !CONSTRUCTOR_NELTS (arg1); in operand_equal_p()
3185 #define OP_SAME(N) operand_equal_p (TREE_OPERAND (arg0, N), \ in operand_equal_p()
3189 ((!TREE_OPERAND (arg0, N) || !TREE_OPERAND (arg1, N)) \ in operand_equal_p()
3190 ? TREE_OPERAND (arg0, N) == TREE_OPERAND (arg1, N) : OP_SAME (N)) in operand_equal_p()
3192 switch (TREE_CODE_CLASS (TREE_CODE (arg0))) in operand_equal_p()
3196 switch (TREE_CODE (arg0)) in operand_equal_p()
3200 if (TYPE_UNSIGNED (TREE_TYPE (arg0)) in operand_equal_p()
3217 return (commutative_tree_code (TREE_CODE (arg0)) in operand_equal_p()
3218 && operand_equal_p (TREE_OPERAND (arg0, 0), in operand_equal_p()
3220 && operand_equal_p (TREE_OPERAND (arg0, 1), in operand_equal_p()
3228 && (TREE_SIDE_EFFECTS (arg0) in operand_equal_p()
3232 switch (TREE_CODE (arg0)) in operand_equal_p()
3237 if (TYPE_ALIGN (TREE_TYPE (arg0)) in operand_equal_p()
3241 if (TYPE_MAIN_VARIANT (TREE_TYPE (arg0)) in operand_equal_p()
3250 if (!operand_equal_p (TYPE_SIZE (TREE_TYPE (arg0)), in operand_equal_p()
3265 if (TYPE_SIZE (TREE_TYPE (arg0)) != TYPE_SIZE (TREE_TYPE (arg1)) in operand_equal_p()
3266 && (!TYPE_SIZE (TREE_TYPE (arg0)) in operand_equal_p()
3268 || !operand_equal_p (TYPE_SIZE (TREE_TYPE (arg0)), in operand_equal_p()
3273 if (!types_compatible_p (TREE_TYPE (arg0), TREE_TYPE (arg1))) in operand_equal_p()
3277 (TREE_TYPE (TREE_OPERAND (arg0, 1)), in operand_equal_p()
3279 || (MR_DEPENDENCE_CLIQUE (arg0) in operand_equal_p()
3281 || (MR_DEPENDENCE_BASE (arg0) in operand_equal_p()
3285 if (TYPE_ALIGN (TREE_TYPE (arg0)) in operand_equal_p()
3292 && (TREE_CODE (arg0) != TARGET_MEM_REF in operand_equal_p()
3304 return ((tree_int_cst_equal (TREE_OPERAND (arg0, 1), in operand_equal_p()
3311 && (TREE_TYPE (TREE_OPERAND (arg0, 0)) in operand_equal_p()
3314 (CONST_CAST_TREE (arg0)), in operand_equal_p()
3318 (CONST_CAST_TREE (arg0)), in operand_equal_p()
3341 if (!operand_equal_p (OBJ_TYPE_REF_EXPR (arg0), in operand_equal_p()
3344 if (tree_to_uhwi (OBJ_TYPE_REF_TOKEN (arg0)) in operand_equal_p()
3347 if (!operand_equal_p (OBJ_TYPE_REF_OBJECT (arg0), in operand_equal_p()
3350 if (!types_same_for_odr (obj_type_ref_class (arg0), in operand_equal_p()
3361 switch (TREE_CODE (arg0)) in operand_equal_p()
3366 return operand_equal_p (TREE_OPERAND (arg0, 0), in operand_equal_p()
3391 return (operand_equal_p (TREE_OPERAND (arg0, 0), in operand_equal_p()
3393 && operand_equal_p (TREE_OPERAND (arg0, 1), in operand_equal_p()
3405 if (TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST in operand_equal_p()
3407 && TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (arg0, 1))) in operand_equal_p()
3439 switch (TREE_CODE (arg0)) in operand_equal_p()
3442 if ((CALL_EXPR_FN (arg0) == NULL_TREE) in operand_equal_p()
3447 else if (CALL_EXPR_FN (arg0) == NULL_TREE) in operand_equal_p()
3451 if (CALL_EXPR_IFN (arg0) != CALL_EXPR_IFN (arg1)) in operand_equal_p()
3458 if (! operand_equal_p (CALL_EXPR_FN (arg0), CALL_EXPR_FN (arg1), in operand_equal_p()
3465 unsigned int cef = call_expr_flags (arg0); in operand_equal_p()
3478 for (a0 = first_const_call_expr_arg (arg0, &iter0), in operand_equal_p()
3496 return (TREE_CODE (arg0) == FUNCTION_DECL in operand_equal_p()
3497 && fndecl_built_in_p (arg0) && fndecl_built_in_p (arg1) in operand_equal_p()
3498 && DECL_BUILT_IN_CLASS (arg0) == DECL_BUILT_IN_CLASS (arg1) in operand_equal_p()
3499 && (DECL_UNCHECKED_FUNCTION_CODE (arg0) in operand_equal_p()
3503 if (TREE_CODE (arg0) == CONSTRUCTOR) in operand_equal_p()
3505 if (CONSTRUCTOR_NO_CLEARING (arg0) != CONSTRUCTOR_NO_CLEARING (arg1)) in operand_equal_p()
3515 if (!VECTOR_TYPE_P (TREE_TYPE (arg0)) in operand_equal_p()
3523 if (maybe_ne (TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0)), in operand_equal_p()
3527 vec<constructor_elt, va_gc> *v0 = CONSTRUCTOR_ELTS (arg0); in operand_equal_p()
3553 else if (TREE_CODE (arg0) == STATEMENT_LIST in operand_equal_p()
3558 tree body1 = CONST_CAST_TREE (arg0); in operand_equal_p()
3577 switch (TREE_CODE (arg0)) in operand_equal_p()
3877 operand_compare::verify_hash_value (const_tree arg0, const_tree arg1, in verify_hash_value() argument
3885 if (operand_equal_p (arg0, arg1, flags | OEP_NO_HASH_CHECK)) in verify_hash_value()
3887 if (arg0 != arg1) in verify_hash_value()
3890 hash_operand (arg0, hstate0, flags | OEP_HASH_CHECK); in verify_hash_value()
3914 operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags) in operand_equal_p() argument
3916 return default_compare_instance.operand_equal_p (arg0, arg1, flags); in operand_equal_p()
3939 operand_equal_for_comparison_p (tree arg0, tree arg1) in operand_equal_for_comparison_p() argument
3941 if (operand_equal_p (arg0, arg1, 0)) in operand_equal_for_comparison_p()
3944 if (! INTEGRAL_TYPE_P (TREE_TYPE (arg0)) in operand_equal_for_comparison_p()
3951 tree op0 = arg0; in operand_equal_for_comparison_p()
3964 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in operand_equal_for_comparison_p()
4110 tree arg0 = TREE_OPERAND (arg, 0); in eval_subst() local
4117 if (arg0 == old0 || operand_equal_p (arg0, old0, 0)) in eval_subst()
4118 arg0 = new0; in eval_subst()
4119 else if (arg0 == old1 || operand_equal_p (arg0, old1, 0)) in eval_subst()
4120 arg0 = new1; in eval_subst()
4127 return fold_build2_loc (loc, code, type, arg0, arg1); in eval_subst()
4872 range_binop (enum tree_code code, tree type, tree arg0, int upper0_p, in range_binop() argument
4884 if (arg0 != 0 && arg1 != 0) in range_binop()
4886 tem = fold_build2 (code, type != 0 ? type : TREE_TYPE (arg0), in range_binop()
4887 arg0, fold_convert (TREE_TYPE (arg0), arg1)); in range_binop()
4901 sgn0 = arg0 != 0 ? 0 : (upper0_p ? 1 : -1); in range_binop()
4935 make_range_step (location_t loc, enum tree_code code, tree arg0, tree arg1, in make_range_step() argument
4939 tree arg0_type = TREE_TYPE (arg0); in make_range_step()
4951 return arg0; in make_range_step()
5019 return arg0; in make_range_step()
5046 return build2_loc (loc, MINUS_EXPR, exp_type, negate_expr (arg0), in make_range_step()
5101 return arg0; in make_range_step()
5213 return arg0; in make_range_step()
5234 tree arg0, arg1 = NULL_TREE; in make_range() local
5253 arg0 = NULL_TREE; in make_range()
5258 arg0 = TREE_OPERAND (exp, 0); in make_range()
5265 if (arg0 == NULL_TREE) in make_range()
5268 nexp = make_range_step (loc, code, arg0, arg1, exp_type, &low, in make_range()
5737 tree arg0, tree arg1, tree arg2) in fold_cond_expr_with_comparison() argument
5739 enum tree_code comp_code = TREE_CODE (arg0); in fold_cond_expr_with_comparison()
5740 tree arg00 = TREE_OPERAND (arg0, 0); in fold_cond_expr_with_comparison()
5741 tree arg01 = TREE_OPERAND (arg0, 1); in fold_cond_expr_with_comparison()
7271 enum tree_code code, tree arg0, tree arg1, in fold_single_bit_test_into_sign_test() argument
7276 && TREE_CODE (arg0) == BIT_AND_EXPR && integer_zerop (arg1) in fold_single_bit_test_into_sign_test()
7277 && integer_pow2p (TREE_OPERAND (arg0, 1))) in fold_single_bit_test_into_sign_test()
7281 tree arg00 = sign_bit_p (TREE_OPERAND (arg0, 0), TREE_OPERAND (arg0, 1)); in fold_single_bit_test_into_sign_test()
7306 tree arg0, tree arg1, tree result_type) in fold_single_bit_test() argument
7310 && TREE_CODE (arg0) == BIT_AND_EXPR && integer_zerop (arg1) in fold_single_bit_test()
7311 && integer_pow2p (TREE_OPERAND (arg0, 1))) in fold_single_bit_test()
7313 tree inner = TREE_OPERAND (arg0, 0); in fold_single_bit_test()
7314 tree type = TREE_TYPE (arg0); in fold_single_bit_test()
7315 int bitnum = tree_log2 (TREE_OPERAND (arg0, 1)); in fold_single_bit_test()
7323 tem = fold_single_bit_test_into_sign_test (loc, code, arg0, arg1, in fold_single_bit_test()
7380 tree_swap_operands_p (const_tree arg0, const_tree arg1) in tree_swap_operands_p() argument
7384 if (CONSTANT_CLASS_P (arg0)) in tree_swap_operands_p()
7387 STRIP_NOPS (arg0); in tree_swap_operands_p()
7392 if (TREE_CONSTANT (arg0)) in tree_swap_operands_p()
7399 if (TREE_CODE (arg0) == SSA_NAME in tree_swap_operands_p()
7401 && SSA_NAME_VERSION (arg0) > SSA_NAME_VERSION (arg1)) in tree_swap_operands_p()
7407 if (TREE_CODE (arg0) == SSA_NAME) in tree_swap_operands_p()
7413 if (DECL_P (arg0)) in tree_swap_operands_p()
7478 tree arg0, tree arg1) in fold_plusminus_mult_expr() argument
7489 if (TREE_CODE (arg0) == MULT_EXPR) in fold_plusminus_mult_expr()
7491 arg00 = TREE_OPERAND (arg0, 0); in fold_plusminus_mult_expr()
7492 arg01 = TREE_OPERAND (arg0, 1); in fold_plusminus_mult_expr()
7494 else if (TREE_CODE (arg0) == INTEGER_CST) in fold_plusminus_mult_expr()
7497 arg01 = arg0; in fold_plusminus_mult_expr()
7504 arg00 = arg0; in fold_plusminus_mult_expr()
8656 tree arg0; in fold_unary_loc() local
8662 arg0 = op0; in fold_unary_loc()
8663 if (arg0) in fold_unary_loc()
8670 STRIP_SIGN_NOPS (arg0); in fold_unary_loc()
8685 STRIP_NOPS (arg0); in fold_unary_loc()
8688 if (CONSTANT_CLASS_P (arg0)) in fold_unary_loc()
8690 tree tem = const_unop (code, type, arg0); in fold_unary_loc()
8706 if (TREE_CODE (arg0) == COMPOUND_EXPR) in fold_unary_loc()
8707 return build2 (COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0), in fold_unary_loc()
8710 TREE_OPERAND (arg0, 1)))); in fold_unary_loc()
8711 else if (TREE_CODE (arg0) == COND_EXPR) in fold_unary_loc()
8713 tree arg01 = TREE_OPERAND (arg0, 1); in fold_unary_loc()
8714 tree arg02 = TREE_OPERAND (arg0, 2); in fold_unary_loc()
8723 tem = fold_build3_loc (loc, COND_EXPR, type, TREE_OPERAND (arg0, 0), in fold_unary_loc()
8886 && TREE_CODE (arg0) == POINTER_PLUS_EXPR in fold_unary_loc()
8887 && CONVERT_EXPR_P (TREE_OPERAND (arg0, 0))) in fold_unary_loc()
8889 tree arg00 = TREE_OPERAND (arg0, 0); in fold_unary_loc()
8890 tree arg01 = TREE_OPERAND (arg0, 1); in fold_unary_loc()
8963 tem = fold_negate_expr (loc, arg0); in fold_unary_loc()
8970 if (TREE_CODE (arg0) == NOP_EXPR in fold_unary_loc()
8973 tree targ0 = strip_float_extensions (arg0); in fold_unary_loc()
8974 if (targ0 != arg0) in fold_unary_loc()
8984 if (TREE_CODE (arg0) == BIT_XOR_EXPR in fold_unary_loc()
8987 TREE_OPERAND (arg0, 0))))) in fold_unary_loc()
8990 TREE_OPERAND (arg0, 1))); in fold_unary_loc()
8991 else if (TREE_CODE (arg0) == BIT_XOR_EXPR in fold_unary_loc()
8994 TREE_OPERAND (arg0, 1))))) in fold_unary_loc()
8997 TREE_OPERAND (arg0, 0)), tem); in fold_unary_loc()
9006 tem = fold_truth_not_expr (loc, arg0); in fold_unary_loc()
9055 tree arg0, tree arg1, tree op0, tree op1) in fold_truth_andor() argument
9069 if (TREE_CODE (arg0) == TREE_CODE (arg1) in fold_truth_andor()
9070 && (TREE_CODE (arg0) == TRUTH_ANDIF_EXPR in fold_truth_andor()
9071 || TREE_CODE (arg0) == TRUTH_ORIF_EXPR in fold_truth_andor()
9072 || TREE_CODE (arg0) == TRUTH_AND_EXPR in fold_truth_andor()
9073 || TREE_CODE (arg0) == TRUTH_OR_EXPR) in fold_truth_andor()
9074 && ! TREE_SIDE_EFFECTS (TREE_OPERAND (arg0, 1))) in fold_truth_andor()
9076 tree a00 = TREE_OPERAND (arg0, 0); in fold_truth_andor()
9077 tree a01 = TREE_OPERAND (arg0, 1); in fold_truth_andor()
9080 int commutative = ((TREE_CODE (arg0) == TRUTH_OR_EXPR in fold_truth_andor()
9081 || TREE_CODE (arg0) == TRUTH_AND_EXPR) in fold_truth_andor()
9086 return fold_build2_loc (loc, TREE_CODE (arg0), type, a00, in fold_truth_andor()
9089 return fold_build2_loc (loc, TREE_CODE (arg0), type, a00, in fold_truth_andor()
9092 return fold_build2_loc (loc, TREE_CODE (arg0), type, a01, in fold_truth_andor()
9100 return fold_build2_loc (loc, TREE_CODE (arg0), type, in fold_truth_andor()
9109 if ((code == TRUTH_ANDIF_EXPR && TREE_CODE (arg0) == TRUTH_ORIF_EXPR) in fold_truth_andor()
9110 || (code == TRUTH_ORIF_EXPR && TREE_CODE (arg0) == TRUTH_ANDIF_EXPR)) in fold_truth_andor()
9112 tem = merge_truthop_with_opposite_arm (loc, arg0, arg1, true); in fold_truth_andor()
9120 tem = merge_truthop_with_opposite_arm (loc, arg1, arg0, false); in fold_truth_andor()
9122 return fold_build2_loc (loc, code, type, arg0, tem); in fold_truth_andor()
9128 if (TREE_CODE (arg0) == code in fold_truth_andor()
9130 TREE_OPERAND (arg0, 1), arg1)) != 0) in fold_truth_andor()
9131 return fold_build2_loc (loc, code, type, TREE_OPERAND (arg0, 0), tem); in fold_truth_andor()
9133 if ((tem = fold_truth_andor_1 (loc, code, type, arg0, arg1)) != 0) in fold_truth_andor()
9162 if (TREE_CODE (arg0) == icode in fold_truth_andor()
9166 && simple_operand_p_2 (TREE_OPERAND (arg0, 1))) in fold_truth_andor()
9168 tem = fold_build2_loc (loc, ncode, type, TREE_OPERAND (arg0, 1), in fold_truth_andor()
9170 return fold_build2_loc (loc, icode, type, TREE_OPERAND (arg0, 0), in fold_truth_andor()
9176 && simple_operand_p_2 (arg0) in fold_truth_andor()
9182 arg0, TREE_OPERAND (arg1, 0)); in fold_truth_andor()
9190 else if (code == icode && simple_operand_p_2 (arg0) in fold_truth_andor()
9192 return fold_build2_loc (loc, ncode, type, arg0, arg1); in fold_truth_andor()
9208 tree arg0, tree arg1, in maybe_canonicalize_comparison_1() argument
9211 enum tree_code code0 = TREE_CODE (arg0); in maybe_canonicalize_comparison_1()
9217 if (!((ANY_INTEGRAL_TYPE_P (TREE_TYPE (arg0)) in maybe_canonicalize_comparison_1()
9218 && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0))) in maybe_canonicalize_comparison_1()
9221 && !POINTER_TYPE_P (TREE_TYPE (arg0)) in maybe_canonicalize_comparison_1()
9224 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)) in maybe_canonicalize_comparison_1()
9228 cst0 = TREE_OPERAND (arg0, 1); in maybe_canonicalize_comparison_1()
9271 t = fold_build2_loc (loc, code0, TREE_TYPE (arg0), TREE_OPERAND (arg0, 0), t); in maybe_canonicalize_comparison_1()
9285 tree arg0, tree arg1) in maybe_canonicalize_comparison() argument
9294 t = maybe_canonicalize_comparison_1 (loc, code, type, arg0, arg1, in maybe_canonicalize_comparison()
9307 t = maybe_canonicalize_comparison_1 (loc, code, type, arg1, arg0, in maybe_canonicalize_comparison()
9400 tree arg0, arg1, tem; in fold_comparison() local
9402 arg0 = op0; in fold_comparison()
9405 STRIP_SIGN_NOPS (arg0); in fold_comparison()
9412 if (POINTER_TYPE_P (TREE_TYPE (arg0)) in fold_comparison()
9413 && (TREE_CODE (arg0) == ADDR_EXPR in fold_comparison()
9415 || TREE_CODE (arg0) == POINTER_PLUS_EXPR in fold_comparison()
9428 base0 = arg0; in fold_comparison()
9429 if (TREE_CODE (arg0) == ADDR_EXPR) in fold_comparison()
9432 = get_inner_reference (TREE_OPERAND (arg0, 0), in fold_comparison()
9440 else if (TREE_CODE (arg0) == POINTER_PLUS_EXPR) in fold_comparison()
9442 base0 = TREE_OPERAND (arg0, 0); in fold_comparison()
9456 offset0 = TREE_OPERAND (arg0, 1); in fold_comparison()
9459 TREE_OPERAND (arg0, 1)); in fold_comparison()
9527 || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)))) in fold_comparison()
9590 || TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)))) in fold_comparison()
9621 ? base0 != TREE_OPERAND (arg0, 0) : base0 != arg0) in fold_comparison()
9675 if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (arg0)) in fold_comparison()
9676 && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)) in fold_comparison()
9677 && (TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) in fold_comparison()
9678 && (TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST in fold_comparison()
9679 && !TREE_OVERFLOW (TREE_OPERAND (arg0, 1))) in fold_comparison()
9684 tree const1 = TREE_OPERAND (arg0, 1); in fold_comparison()
9686 tree variable1 = TREE_OPERAND (arg0, 0); in fold_comparison()
9695 cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) in fold_comparison()
9710 cst = int_const_binop (TREE_CODE (arg0) == TREE_CODE (arg1) in fold_comparison()
9719 fold_build2_loc (loc, TREE_CODE (arg0), in fold_comparison()
9720 TREE_TYPE (arg0), in fold_comparison()
9726 tem = maybe_canonicalize_comparison (loc, code, type, arg0, arg1); in fold_comparison()
9743 if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) != INTEGER_CST) in fold_comparison()
9747 if (twoval_comparison_p (arg0, &cval1, &cval2) in fold_comparison()
9767 eval_subst (loc, arg0, cval1, maxval, in fold_comparison()
9772 eval_subst (loc, arg0, cval1, maxval, in fold_comparison()
9777 eval_subst (loc, arg0, cval1, minval, in fold_comparison()
9796 return omit_one_operand_loc (loc, type, integer_zero_node, arg0); in fold_comparison()
9817 return omit_one_operand_loc (loc, type, integer_one_node, arg0); in fold_comparison()
9904 fold_vec_perm (tree type, tree arg0, tree arg1, const vec_perm_indices &sel) in fold_vec_perm() argument
9913 && known_eq (TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0)), nelts) in fold_vec_perm()
9915 if (TREE_TYPE (TREE_TYPE (arg0)) != TREE_TYPE (type) in fold_vec_perm()
9920 if (!vec_cst_ctor_to_array (arg0, nelts, in_elts) in fold_vec_perm()
10210 tree arg0, arg1, tem; in fold_binary_loc() local
10220 arg0 = op0; in fold_binary_loc()
10238 STRIP_SIGN_NOPS (arg0); in fold_binary_loc()
10243 STRIP_NOPS (arg0); in fold_binary_loc()
10249 if (CONSTANT_CLASS_P (arg0) && CONSTANT_CLASS_P (arg1)) in fold_binary_loc()
10251 tem = const_binop (code, type, arg0, arg1); in fold_binary_loc()
10263 && tree_swap_operands_p (arg0, arg1)) in fold_binary_loc()
10269 && tree_swap_operands_p (arg0, arg1)) in fold_binary_loc()
10294 && !VECTOR_TYPE_P (TREE_TYPE (arg0)) in fold_binary_loc()
10295 && ((truth_value_p (TREE_CODE (arg0)) in fold_binary_loc()
10300 && (truth_value_p (TREE_CODE (arg0)) in fold_binary_loc()
10301 || (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
10302 && integer_onep (TREE_OPERAND (arg0, 1))))))) in fold_binary_loc()
10308 fold_convert_loc (loc, boolean_type_node, arg0), in fold_binary_loc()
10320 if (TREE_CODE (arg0) == COMPOUND_EXPR) in fold_binary_loc()
10324 TREE_OPERAND (arg0, 1)), op1); in fold_binary_loc()
10325 return build2_loc (loc, COMPOUND_EXPR, type, TREE_OPERAND (arg0, 0), in fold_binary_loc()
10337 if (TREE_CODE (arg0) == COND_EXPR in fold_binary_loc()
10338 || TREE_CODE (arg0) == VEC_COND_EXPR in fold_binary_loc()
10339 || COMPARISON_CLASS_P (arg0)) in fold_binary_loc()
10342 arg0, arg1, in fold_binary_loc()
10353 arg1, arg0, in fold_binary_loc()
10364 if (TREE_CODE (arg0) == ADDR_EXPR in fold_binary_loc()
10365 && TREE_CODE (TREE_OPERAND (arg0, 0)) == MEM_REF) in fold_binary_loc()
10367 tree iref = TREE_OPERAND (arg0, 0); in fold_binary_loc()
10375 if (TREE_CODE (arg0) == ADDR_EXPR in fold_binary_loc()
10376 && handled_component_p (TREE_OPERAND (arg0, 0))) in fold_binary_loc()
10380 base = get_addr_base_and_unit_offset (TREE_OPERAND (arg0, 0), in fold_binary_loc()
10385 build1 (ADDR_EXPR, TREE_TYPE (arg0), base), in fold_binary_loc()
10395 && INTEGRAL_TYPE_P (TREE_TYPE (arg0))) in fold_binary_loc()
10401 arg0))); in fold_binary_loc()
10411 && operand_equal_p (arg0, in fold_binary_loc()
10421 TREE_TYPE (arg0), arg0, in fold_binary_loc()
10430 if ((TREE_CODE (arg0) == MULT_EXPR in fold_binary_loc()
10433 && TYPE_UNSIGNED (type) == TYPE_UNSIGNED (TREE_TYPE (arg0)) in fold_binary_loc()
10437 tree tem = fold_plusminus_mult_expr (loc, code, type, arg0, arg1); in fold_binary_loc()
10449 && (((TREE_CODE (arg0) == PLUS_EXPR in fold_binary_loc()
10450 || TREE_CODE (arg0) == MINUS_EXPR) in fold_binary_loc()
10454 && TREE_CODE (arg0) == MULT_EXPR))) in fold_binary_loc()
10460 parg = arg0, marg = arg1; in fold_binary_loc()
10462 parg = arg1, marg = arg0; in fold_binary_loc()
10494 if (!HONOR_SNANS (element_mode (arg0)) in fold_binary_loc()
10495 && !HONOR_SIGNED_ZEROS (element_mode (arg0)) in fold_binary_loc()
10496 && COMPLEX_FLOAT_TYPE_P (TREE_TYPE (arg0))) in fold_binary_loc()
10498 tree rtype = TREE_TYPE (TREE_TYPE (arg0)); in fold_binary_loc()
10499 tree arg0r = fold_unary_loc (loc, REALPART_EXPR, rtype, arg0); in fold_binary_loc()
10500 tree arg0i = fold_unary_loc (loc, IMAGPART_EXPR, rtype, arg0); in fold_binary_loc()
10512 : build1 (IMAGPART_EXPR, rtype, arg0); in fold_binary_loc()
10518 : build1 (REALPART_EXPR, rtype, arg0); in fold_binary_loc()
10531 && TREE_CODE (arg0) != MULT_EXPR) in fold_binary_loc()
10539 tree0 = fold_build2_loc (loc, PLUS_EXPR, type, arg0, tree10); in fold_binary_loc()
10547 && TREE_CODE (arg0) == PLUS_EXPR in fold_binary_loc()
10550 tree tree00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
10551 tree tree01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
10573 code0 = TREE_CODE (arg0); in fold_binary_loc()
10577 && operand_equal_p (TREE_OPERAND (arg0, 0), in fold_binary_loc()
10579 && (rtype = TREE_TYPE (TREE_OPERAND (arg0, 0)), in fold_binary_loc()
10590 tree01 = orig_tree01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
10610 rtype, TREE_OPERAND (arg0, 0), in fold_binary_loc()
10629 rtype, TREE_OPERAND (arg0, 0), in fold_binary_loc()
10651 rtype, TREE_OPERAND (arg0, 0), in fold_binary_loc()
10679 var0 = split_tree (arg0, type, code, in fold_binary_loc()
10695 if (INTEGRAL_TYPE_P (TREE_TYPE (arg0)) in fold_binary_loc()
10696 && TYPE_OVERFLOW_WRAPS (TREE_TYPE (arg0))) in fold_binary_loc()
10697 atype = TREE_TYPE (arg0); in fold_binary_loc()
10857 if (TREE_CODE (arg0) == ADDR_EXPR in fold_binary_loc()
10858 && TREE_CODE (TREE_OPERAND (arg0, 0)) == ARRAY_REF in fold_binary_loc()
10863 TREE_OPERAND (arg0, 0), in fold_binary_loc()
10876 if (TREE_CODE (arg0) == NEGATE_EXPR in fold_binary_loc()
10884 && ANY_INTEGRAL_TYPE_P (TREE_TYPE (arg0)) in fold_binary_loc()
10885 && !TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (arg0)))) in fold_binary_loc()
10888 TREE_OPERAND (arg0, 0))); in fold_binary_loc()
10893 if (!HONOR_SNANS (element_mode (arg0)) in fold_binary_loc()
10894 && !HONOR_SIGNED_ZEROS (element_mode (arg0)) in fold_binary_loc()
10895 && COMPLEX_FLOAT_TYPE_P (TREE_TYPE (arg0))) in fold_binary_loc()
10897 tree rtype = TREE_TYPE (TREE_TYPE (arg0)); in fold_binary_loc()
10898 tree arg0r = fold_unary_loc (loc, REALPART_EXPR, rtype, arg0); in fold_binary_loc()
10899 tree arg0i = fold_unary_loc (loc, IMAGPART_EXPR, rtype, arg0); in fold_binary_loc()
10912 : build1 (IMAGPART_EXPR, rtype, arg0); in fold_binary_loc()
10918 : build1 (REALPART_EXPR, rtype, arg0); in fold_binary_loc()
10936 fold_convert_loc (loc, type, arg0), in fold_binary_loc()
10943 if ((TREE_CODE (arg0) == MULT_EXPR in fold_binary_loc()
10946 && TYPE_UNSIGNED (type) == TYPE_UNSIGNED (TREE_TYPE (arg0)) in fold_binary_loc()
10950 tree tem = fold_plusminus_mult_expr (loc, code, type, arg0, arg1); in fold_binary_loc()
10985 if (TREE_CODE (arg0) == CONJ_EXPR in fold_binary_loc()
10986 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)) in fold_binary_loc()
10989 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in fold_binary_loc()
10990 return fold_mult_zconjz (loc, type, arg0); in fold_binary_loc()
10997 if (!HONOR_NANS (arg0) in fold_binary_loc()
10998 && !HONOR_SIGNED_ZEROS (element_mode (arg0)) in fold_binary_loc()
10999 && COMPLEX_FLOAT_TYPE_P (TREE_TYPE (arg0)) in fold_binary_loc()
11003 tree rtype = TREE_TYPE (TREE_TYPE (arg0)); in fold_binary_loc()
11008 rtype, arg0)), in fold_binary_loc()
11009 fold_build1_loc (loc, REALPART_EXPR, rtype, arg0)); in fold_binary_loc()
11013 fold_build1_loc (loc, IMAGPART_EXPR, rtype, arg0), in fold_binary_loc()
11015 rtype, arg0))); in fold_binary_loc()
11022 && TREE_CODE (arg0) == CONJ_EXPR in fold_binary_loc()
11023 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)) in fold_binary_loc()
11027 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in fold_binary_loc()
11028 return fold_mult_zconjz (loc, type, arg0); in fold_binary_loc()
11034 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11036 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) in fold_binary_loc()
11039 wide_int c1 = wi::to_wide (TREE_OPERAND (arg0, 1)); in fold_binary_loc()
11045 TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11053 tem = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11077 tem = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11090 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11092 && integer_onep (TREE_OPERAND (arg0, 1)) in fold_binary_loc()
11094 return fold_build2_loc (loc, EQ_EXPR, type, arg0, in fold_binary_loc()
11095 build_zero_cst (TREE_TYPE (arg0))); in fold_binary_loc()
11103 if (TREE_CODE (arg0) == BIT_XOR_EXPR in fold_binary_loc()
11105 && integer_onep (TREE_OPERAND (arg0, 1)) in fold_binary_loc()
11109 tem = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11117 if (TREE_CODE (arg0) == BIT_NOT_EXPR in fold_binary_loc()
11122 tem = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11130 if (TREE_CODE (arg0) == TRUTH_NOT_EXPR in fold_binary_loc()
11133 tem = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11145 && multiple_of_p (type, arg0, in fold_binary_loc()
11147 return fold_convert_loc (loc, type, arg0); in fold_binary_loc()
11153 && TREE_CODE (arg0) == MULT_EXPR in fold_binary_loc()
11154 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) in fold_binary_loc()
11158 = mask_with_tz (type, warg1, wi::to_wide (TREE_OPERAND (arg0, 1))); in fold_binary_loc()
11162 arg0, arg1); in fold_binary_loc()
11177 if (TREE_CODE (arg1) == INTEGER_CST && TREE_CODE (arg0) == NOP_EXPR in fold_binary_loc()
11178 && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (arg0, 0)))) in fold_binary_loc()
11180 prec = element_precision (TREE_TYPE (TREE_OPERAND (arg0, 0))); in fold_binary_loc()
11185 fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11199 if (TREE_CODE (arg0) == NEGATE_EXPR && negate_expr_p (arg1)) in fold_binary_loc()
11201 TREE_OPERAND (arg0, 0), in fold_binary_loc()
11203 if (TREE_CODE (arg1) == NEGATE_EXPR && negate_expr_p (arg0)) in fold_binary_loc()
11205 negate_expr (arg0), in fold_binary_loc()
11235 fold_convert_loc (loc, type, arg0), sh_cnt); in fold_binary_loc()
11260 TREE_OPERAND (arg0, 0)), in fold_binary_loc()
11285 && multiple_of_p (type, arg0, arg1)) in fold_binary_loc()
11287 fold_convert (type, arg0), in fold_binary_loc()
11337 && (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11338 || TREE_CODE (arg0) == BIT_IOR_EXPR in fold_binary_loc()
11339 || TREE_CODE (arg0) == BIT_XOR_EXPR) in fold_binary_loc()
11340 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) in fold_binary_loc()
11342 tree arg00 = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11343 tree arg01 = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 1)); in fold_binary_loc()
11344 return fold_build2_loc (loc, TREE_CODE (arg0), type, in fold_binary_loc()
11354 && TREE_CODE (arg0) == RROTATE_EXPR in fold_binary_loc()
11355 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST in fold_binary_loc()
11357 + wi::to_wide (TREE_OPERAND (arg0, 1)), in fold_binary_loc()
11359 return fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11372 if (integer_zerop (arg0)) in fold_binary_loc()
11373 return fold_convert_loc (loc, type, arg0); in fold_binary_loc()
11377 if (TREE_CODE (arg0) == INTEGER_CST && ! integer_zerop (arg0)) in fold_binary_loc()
11381 && (code != TRUTH_ANDIF_EXPR || ! TREE_SIDE_EFFECTS (arg0))) in fold_binary_loc()
11382 return non_lvalue_loc (loc, fold_convert_loc (loc, type, arg0)); in fold_binary_loc()
11386 return omit_one_operand_loc (loc, type, arg1, arg0); in fold_binary_loc()
11389 if (integer_zerop (arg0)) in fold_binary_loc()
11390 return omit_one_operand_loc (loc, type, arg0, arg1); in fold_binary_loc()
11393 if (TREE_CODE (arg0) == TRUTH_NOT_EXPR in fold_binary_loc()
11394 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)) in fold_binary_loc()
11398 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in fold_binary_loc()
11399 return omit_one_operand_loc (loc, type, integer_zero_node, arg0); in fold_binary_loc()
11405 if (!TREE_SIDE_EFFECTS (arg0) in fold_binary_loc()
11408 tem = fold_to_nonsharp_ineq_using_bound (loc, arg0, arg1); in fold_binary_loc()
11409 if (tem && !operand_equal_p (tem, arg0, 0)) in fold_binary_loc()
11412 tem = fold_to_nonsharp_ineq_using_bound (loc, arg1, arg0); in fold_binary_loc()
11414 return fold_build2_loc (loc, code, type, arg0, tem); in fold_binary_loc()
11417 if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1)) in fold_binary_loc()
11428 if (TREE_CODE (arg0) == INTEGER_CST && ! integer_zerop (arg0)) in fold_binary_loc()
11429 return fold_convert_loc (loc, type, arg0); in fold_binary_loc()
11433 if (TREE_CODE (arg0) == INTEGER_CST && integer_zerop (arg0)) in fold_binary_loc()
11437 && (code != TRUTH_ORIF_EXPR || ! TREE_SIDE_EFFECTS (arg0))) in fold_binary_loc()
11438 return non_lvalue_loc (loc, fold_convert_loc (loc, type, arg0)); in fold_binary_loc()
11442 return omit_one_operand_loc (loc, type, arg1, arg0); in fold_binary_loc()
11445 if (TREE_CODE (arg0) == INTEGER_CST && ! integer_zerop (arg0)) in fold_binary_loc()
11446 return omit_one_operand_loc (loc, type, arg0, arg1); in fold_binary_loc()
11449 if (TREE_CODE (arg0) == TRUTH_NOT_EXPR in fold_binary_loc()
11450 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)) in fold_binary_loc()
11454 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in fold_binary_loc()
11455 return omit_one_operand_loc (loc, type, integer_one_node, arg0); in fold_binary_loc()
11458 if (TREE_CODE (arg0) == TRUTH_AND_EXPR in fold_binary_loc()
11466 l0 = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0)); in fold_binary_loc()
11467 l1 = fold_convert_loc (loc, type, TREE_OPERAND (arg0, 1)); in fold_binary_loc()
11479 if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1)) in fold_binary_loc()
11488 return non_lvalue_loc (loc, fold_convert_loc (loc, type, arg0)); in fold_binary_loc()
11492 tem = invert_truthvalue_loc (loc, arg0); in fold_binary_loc()
11496 if (operand_equal_p (arg0, arg1, 0)) in fold_binary_loc()
11497 return omit_one_operand_loc (loc, type, integer_zero_node, arg0); in fold_binary_loc()
11500 if (TREE_CODE (arg0) == TRUTH_NOT_EXPR in fold_binary_loc()
11501 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0)) in fold_binary_loc()
11506 && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) in fold_binary_loc()
11507 return omit_one_operand_loc (loc, type, integer_one_node, arg0); in fold_binary_loc()
11513 STRIP_NOPS (arg0); in fold_binary_loc()
11521 if (TREE_CODE (TREE_TYPE (arg0)) == BOOLEAN_TYPE && integer_onep (arg1) in fold_binary_loc()
11525 TREE_TYPE (arg0), arg0)); in fold_binary_loc()
11528 if (TREE_CODE (TREE_TYPE (arg0)) == BOOLEAN_TYPE && integer_zerop (arg1) in fold_binary_loc()
11532 TREE_TYPE (arg0), arg0)); in fold_binary_loc()
11535 if (TREE_CODE (arg0) == TRUTH_NOT_EXPR && integer_zerop (arg1) in fold_binary_loc()
11537 return non_lvalue_loc (loc, fold_convert_loc (loc, type, arg0)); in fold_binary_loc()
11544 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11547 tree arg00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11548 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11554 tem = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (arg0), tem, in fold_binary_loc()
11555 build_one_cst (TREE_TYPE (arg0))); in fold_binary_loc()
11565 tem = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (arg0), tem, in fold_binary_loc()
11566 build_one_cst (TREE_TYPE (arg0))); in fold_binary_loc()
11576 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11577 && TREE_CODE (TREE_OPERAND (arg0, 0)) == RSHIFT_EXPR in fold_binary_loc()
11578 && TREE_CODE (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1)) in fold_binary_loc()
11580 && integer_pow2p (TREE_OPERAND (arg0, 1)) in fold_binary_loc()
11583 tree itype = TREE_TYPE (arg0); in fold_binary_loc()
11584 tree arg001 = TREE_OPERAND (TREE_OPERAND (arg0, 0), 1); in fold_binary_loc()
11590 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11591 tree arg000 = TREE_OPERAND (TREE_OPERAND (arg0, 0), 0); in fold_binary_loc()
11620 if ((TREE_CODE (arg0) == COMPONENT_REF in fold_binary_loc()
11621 || TREE_CODE (arg0) == BIT_FIELD_REF) in fold_binary_loc()
11626 t1 = optimize_bit_field_compare (loc, code, type, arg0, arg1); in fold_binary_loc()
11637 if (TREE_CODE (arg0) == CALL_EXPR && integer_zerop (arg1)) in fold_binary_loc()
11639 tree fndecl = get_callee_fndecl (arg0); in fold_binary_loc()
11643 && call_expr_nargs (arg0) == 1 in fold_binary_loc()
11644 && (TREE_CODE (TREE_TYPE (CALL_EXPR_ARG (arg0, 0))) in fold_binary_loc()
11651 CALL_EXPR_ARG (arg0, 0)); in fold_binary_loc()
11660 if (TREE_CODE (arg0) == RSHIFT_EXPR in fold_binary_loc()
11662 && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST) in fold_binary_loc()
11664 tree arg00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11665 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11681 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11682 && TREE_CODE (TREE_OPERAND (arg0, 0)) == BIT_NOT_EXPR in fold_binary_loc()
11684 && integer_pow2p (TREE_OPERAND (arg0, 1))) in fold_binary_loc()
11686 tem = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (arg0), in fold_binary_loc()
11687 TREE_OPERAND (TREE_OPERAND (arg0, 0), 0), in fold_binary_loc()
11688 TREE_OPERAND (arg0, 1)); in fold_binary_loc()
11691 fold_convert_loc (loc, TREE_TYPE (arg0), in fold_binary_loc()
11697 if (TREE_CODE (arg0) == BIT_XOR_EXPR in fold_binary_loc()
11698 && TREE_CODE (TREE_OPERAND (arg0, 0)) == BIT_AND_EXPR in fold_binary_loc()
11700 && integer_pow2p (TREE_OPERAND (arg0, 1)) in fold_binary_loc()
11701 && operand_equal_p (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1), in fold_binary_loc()
11702 TREE_OPERAND (arg0, 1), OEP_ONLY_CONST)) in fold_binary_loc()
11704 tree arg00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11711 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11712 && TREE_CODE (TREE_OPERAND (arg0, 0)) == BIT_XOR_EXPR in fold_binary_loc()
11714 && integer_pow2p (TREE_OPERAND (arg0, 1)) in fold_binary_loc()
11715 && operand_equal_p (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1), in fold_binary_loc()
11716 TREE_OPERAND (arg0, 1), OEP_ONLY_CONST)) in fold_binary_loc()
11718 tree arg000 = TREE_OPERAND (TREE_OPERAND (arg0, 0), 0); in fold_binary_loc()
11720 arg000, TREE_OPERAND (arg0, 1)); in fold_binary_loc()
11726 && tree_expr_nonzero_p (arg0)) in fold_binary_loc()
11729 return omit_one_operand_loc (loc, type, res, arg0); in fold_binary_loc()
11733 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_binary_loc()
11736 tree arg00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11737 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11740 tree itype = TREE_TYPE (arg0); in fold_binary_loc()
11776 if (TREE_CODE (arg0) == BIT_XOR_EXPR in fold_binary_loc()
11779 tree arg00 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11780 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11783 tree itype = TREE_TYPE (arg0); in fold_binary_loc()
11820 if ((TREE_CODE (arg0) == COMPLEX_EXPR in fold_binary_loc()
11821 || TREE_CODE (arg0) == COMPLEX_CST) in fold_binary_loc()
11828 if (TREE_CODE (arg0) == COMPLEX_EXPR) in fold_binary_loc()
11830 real0 = TREE_OPERAND (arg0, 0); in fold_binary_loc()
11831 imag0 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11835 real0 = TREE_REALPART (arg0); in fold_binary_loc()
11836 imag0 = TREE_IMAGPART (arg0); in fold_binary_loc()
11900 if ((TREE_CODE (arg0) == PLUS_EXPR || TREE_CODE (arg0) == MINUS_EXPR) in fold_binary_loc()
11901 && operand_equal_p (TREE_OPERAND (arg0, 0), arg1, 0) in fold_binary_loc()
11902 && TREE_CODE (TREE_OPERAND (arg0, 1)) == REAL_CST in fold_binary_loc()
11903 && !HONOR_SNANS (arg0)) in fold_binary_loc()
11905 tree arg01 = TREE_OPERAND (arg0, 1); in fold_binary_loc()
11906 enum tree_code code0 = TREE_CODE (arg0); in fold_binary_loc()
11943 && TREE_CODE (arg0) == ABS_EXPR in fold_binary_loc()
11944 && ! TREE_SIDE_EFFECTS (arg0) in fold_binary_loc()
11950 TREE_OPERAND (arg0, 0), tem), in fold_binary_loc()
11952 TREE_OPERAND (arg0, 0), arg1)); in fold_binary_loc()
11958 || (! HONOR_NANS (arg0) in fold_binary_loc()
11960 && tree_expr_nonnegative_warnv_p (arg0, &strict_overflow_p)) in fold_binary_loc()
11969 arg0); in fold_binary_loc()
11976 && tree_expr_nonnegative_warnv_p (arg0, &strict_overflow_p)) in fold_binary_loc()
11985 arg0); in fold_binary_loc()
11991 && TYPE_UNSIGNED (TREE_TYPE (arg0)) in fold_binary_loc()
11995 build2 (RSHIFT_EXPR, TREE_TYPE (arg0), arg0, in fold_binary_loc()
11997 build_zero_cst (TREE_TYPE (arg0))); in fold_binary_loc()
12007 && TYPE_UNSIGNED (TREE_TYPE (arg0)) in fold_binary_loc()
12017 tem = build2 (RSHIFT_EXPR, TREE_TYPE (arg0), arg0, in fold_binary_loc()
12020 fold_convert_loc (loc, TREE_TYPE (arg0), tem), in fold_binary_loc()
12021 build_zero_cst (TREE_TYPE (arg0))); in fold_binary_loc()
12036 tree targ0 = strip_float_extensions (arg0); in fold_binary_loc()
12043 if (TYPE_PRECISION (newtype) < TYPE_PRECISION (TREE_TYPE (arg0))) in fold_binary_loc()
12054 if (TREE_SIDE_EFFECTS (arg0) || TREE_CONSTANT (arg1)) in fold_binary_loc()
12232 tree arg0 = NULL_TREE, arg1 = NULL_TREE, arg2 = NULL_TREE; in fold_ternary_loc() local
12260 arg0 = op0; in fold_ternary_loc()
12261 STRIP_NOPS (arg0); in fold_ternary_loc()
12279 if (TREE_CODE (arg0) == CONSTRUCTOR in fold_ternary_loc()
12280 && ! type_contains_placeholder_p (TREE_TYPE (arg0))) in fold_ternary_loc()
12284 FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (arg0), idx, field, value) in fold_ternary_loc()
12294 if (TREE_CODE (arg0) == INTEGER_CST) in fold_ternary_loc()
12296 tree unused_op = integer_zerop (arg0) ? op1 : op2; in fold_ternary_loc()
12297 tem = integer_zerop (arg0) ? op2 : op1; in fold_ternary_loc()
12309 else if (TREE_CODE (arg0) == VECTOR_CST) in fold_ternary_loc()
12321 tree val = VECTOR_CST_ELT (arg0, i); in fold_ternary_loc()
12342 if (COMPARISON_CLASS_P (arg0) in fold_ternary_loc()
12343 && operand_equal_for_comparison_p (TREE_OPERAND (arg0, 0), op1) in fold_ternary_loc()
12346 tem = fold_cond_expr_with_comparison (loc, type, arg0, op1, op2); in fold_ternary_loc()
12351 if (COMPARISON_CLASS_P (arg0) in fold_ternary_loc()
12352 && operand_equal_for_comparison_p (TREE_OPERAND (arg0, 0), op2) in fold_ternary_loc()
12355 location_t loc0 = expr_location_or (arg0, loc); in fold_ternary_loc()
12356 tem = fold_invert_truthvalue (loc0, arg0); in fold_ternary_loc()
12367 if (truth_value_p (TREE_CODE (arg0)) in fold_ternary_loc()
12370 location_t loc0 = expr_location_or (arg0, loc); in fold_ternary_loc()
12374 tem = fold_invert_truthvalue (loc0, arg0); in fold_ternary_loc()
12388 && type == TREE_TYPE (arg0)) in fold_ternary_loc()
12389 return pedantic_non_lvalue_loc (loc, arg0); in fold_ternary_loc()
12397 && truth_value_p (TREE_CODE (arg0))) in fold_ternary_loc()
12401 arg0))); in fold_ternary_loc()
12404 if (TREE_CODE (arg0) == LT_EXPR in fold_ternary_loc()
12405 && integer_zerop (TREE_OPERAND (arg0, 1)) in fold_ternary_loc()
12407 && (tem = sign_bit_p (TREE_OPERAND (arg0, 0), arg1))) in fold_ternary_loc()
12412 tree tem2 = TREE_OPERAND (arg0, 0); in fold_ternary_loc()
12474 if (TREE_CODE (arg0) == BIT_AND_EXPR in fold_ternary_loc()
12475 && integer_onep (TREE_OPERAND (arg0, 1)) in fold_ternary_loc()
12479 tree tem = TREE_OPERAND (arg0, 0); in fold_ternary_loc()
12496 && TREE_CODE (arg0) == NE_EXPR in fold_ternary_loc()
12497 && integer_zerop (TREE_OPERAND (arg0, 1)) in fold_ternary_loc()
12499 && TREE_CODE (TREE_OPERAND (arg0, 0)) == BIT_AND_EXPR in fold_ternary_loc()
12500 && operand_equal_p (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1), in fold_ternary_loc()
12506 && integer_pow2p (TREE_OPERAND (TREE_OPERAND (arg0, 0), 1))) in fold_ternary_loc()
12509 TREE_OPERAND (arg0, in fold_ternary_loc()
12520 && truth_value_p (TREE_CODE (arg0)) in fold_ternary_loc()
12525 type, fold_convert_loc (loc, type, arg0), op1); in fold_ternary_loc()
12529 && truth_value_p (TREE_CODE (arg0)) in fold_ternary_loc()
12533 location_t loc0 = expr_location_or (arg0, loc); in fold_ternary_loc()
12535 tem = fold_invert_truthvalue (loc0, arg0); in fold_ternary_loc()
12546 && truth_value_p (TREE_CODE (arg0)) in fold_ternary_loc()
12550 location_t loc0 = expr_location_or (arg0, loc); in fold_ternary_loc()
12552 tem = fold_invert_truthvalue (loc0, arg0); in fold_ternary_loc()
12562 && truth_value_p (TREE_CODE (arg0)) in fold_ternary_loc()
12567 type, fold_convert_loc (loc, type, arg0), op2); in fold_ternary_loc()
12577 if (TREE_CODE (arg0) == VECTOR_CST in fold_ternary_loc()
12578 && (type == TREE_TYPE (TREE_TYPE (arg0)) in fold_ternary_loc()
12580 && TREE_TYPE (type) == TREE_TYPE (TREE_TYPE (arg0)))) in fold_ternary_loc()
12584 tree eltype = TREE_TYPE (TREE_TYPE (arg0)); in fold_ternary_loc()
12593 TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0)))) in fold_ternary_loc()
12598 if (TREE_CODE (arg0) == VECTOR_CST) in fold_ternary_loc()
12602 tem = VECTOR_CST_ELT (arg0, idx); in fold_ternary_loc()
12610 vals.quick_push (VECTOR_CST_ELT (arg0, idx + i)); in fold_ternary_loc()
12618 if (CONSTANT_CLASS_P (arg0) in fold_ternary_loc()
12635 = native_encode_expr (arg0, b, bitsize / BITS_PER_UNIT, in fold_ternary_loc()
12671 if (TREE_CODE (arg0) == INTEGER_CST in fold_ternary_loc()
12676 wide_int tem = (wi::to_wide (arg0) in fold_ternary_loc()
12684 else if (TREE_CODE (arg0) == VECTOR_CST in fold_ternary_loc()
12686 && types_compatible_p (TREE_TYPE (TREE_TYPE (arg0)), in fold_ternary_loc()
12696 if (operand_equal_p (VECTOR_CST_ELT (arg0, k), arg1, 0)) in fold_ternary_loc()
12697 return arg0; in fold_ternary_loc()
12698 else if (VECTOR_CST_NELTS (arg0).is_constant (&nelts)) in fold_ternary_loc()
12703 elts[i] = (i == k ? arg1 : VECTOR_CST_ELT (arg0, i)); in fold_ternary_loc()
13917 tree_call_nonnegative_warnv_p (tree type, combined_fn fn, tree arg0, tree arg1, in tree_call_nonnegative_warnv_p() argument
13949 return RECURSE (arg0); in tree_call_nonnegative_warnv_p()
13995 return RECURSE (arg0); in tree_call_nonnegative_warnv_p()
14000 return RECURSE (arg0) || RECURSE (arg1); in tree_call_nonnegative_warnv_p()
14005 return RECURSE (arg0) && RECURSE (arg1); in tree_call_nonnegative_warnv_p()
14018 return RECURSE (arg0); in tree_call_nonnegative_warnv_p()
14038 return RECURSE (arg0); in tree_call_nonnegative_warnv_p()
14093 tree arg0 = call_expr_nargs (t) > 0 ? CALL_EXPR_ARG (t, 0) : NULL_TREE; in tree_invalid_nonnegative_warnv_p() local
14098 arg0, in tree_invalid_nonnegative_warnv_p()
14494 integer_valued_real_call_p (combined_fn fn, tree arg0, tree arg1, int depth) in integer_valued_real_call_p() argument
14518 return RECURSE (arg0) && RECURSE (arg1); in integer_valued_real_call_p()
14630 tree arg0 = (call_expr_nargs (t) > 0 in integer_valued_real_p() local
14637 arg0, arg1, depth); in integer_valued_real_p()
14759 fold_negate_const (tree arg0, tree type) in fold_negate_const() argument
14763 switch (TREE_CODE (arg0)) in fold_negate_const()
14766 t = build_real (type, real_value_negate (&TREE_REAL_CST (arg0))); in fold_negate_const()
14773 &(TREE_FIXED_CST (arg0)), NULL, in fold_negate_const()
14777 if (overflow_p | TREE_OVERFLOW (arg0)) in fold_negate_const()
14783 if (poly_int_tree_p (arg0)) in fold_negate_const()
14786 poly_wide_int res = wi::neg (wi::to_poly_wide (arg0), &overflow); in fold_negate_const()
14789 || TREE_OVERFLOW (arg0)); in fold_negate_const()
14805 fold_abs_const (tree arg0, tree type) in fold_abs_const() argument
14809 switch (TREE_CODE (arg0)) in fold_abs_const()
14815 wide_int val = wi::to_wide (arg0); in fold_abs_const()
14817 if (!wi::neg_p (val, TYPE_SIGN (TREE_TYPE (arg0)))) in fold_abs_const()
14827 t = force_fit_type (type, val, 1, overflow | TREE_OVERFLOW (arg0)); in fold_abs_const()
14832 if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (arg0))) in fold_abs_const()
14833 t = build_real (type, real_value_negate (&TREE_REAL_CST (arg0))); in fold_abs_const()
14835 t = arg0; in fold_abs_const()
14849 fold_not_const (const_tree arg0, tree type) in fold_not_const() argument
14851 gcc_assert (TREE_CODE (arg0) == INTEGER_CST); in fold_not_const()
14853 return force_fit_type (type, ~wi::to_wide (arg0), 0, TREE_OVERFLOW (arg0)); in fold_not_const()