(op:c @2 @1))
(if (INTEGRAL_TYPE_P (type)
&& TYPE_PRECISION (type) > 1
- && (INTEGRAL_TYPE_P (TREE_TYPE (@0))))
+ && INTEGRAL_TYPE_P (TREE_TYPE (@0))
+ && expr_no_side_effects_p (@2))
(op (mult (convert:type @0) @2) @1))))
/* (zero_one != 0) ? z <op> y : y -> ((typeof(y))zero_one * z) <op> y */
@1)
(if (INTEGRAL_TYPE_P (type)
&& TYPE_PRECISION (type) > 1
- && (INTEGRAL_TYPE_P (TREE_TYPE (@0))))
+ && INTEGRAL_TYPE_P (TREE_TYPE (@0))
+ && expr_no_side_effects_p (@2))
(op (mult (convert:type @0) @2) @1))))
/* ?: Value replacement. */