- return new_tarval_from_long (proj_nr & flags, mode_b);
- }
- }
- /* for integer values, we can check against MIN/MAX */
- else if (mode_is_int(mode)) {
- /* MIN <=/> x. This results in true/false. */
- if (taa == get_mode_min(mode)) {
- /* a compare with the MIN value */
- if (proj_nr == pn_Cmp_Le)
- return get_tarval_b_true();
- else if (proj_nr == pn_Cmp_Gt)
- return get_tarval_b_false();
- }
- /* x >=/< MIN. This results in true/false. */
- else
- if (tab == get_mode_min(mode)) {
- /* a compare with the MIN value */
- if (proj_nr == pn_Cmp_Ge)
- return get_tarval_b_true();
- else if (proj_nr == pn_Cmp_Lt)
- return get_tarval_b_false();
- }
- /* MAX >=/< x. This results in true/false. */
- else if (taa == get_mode_max(mode)) {
- if (proj_nr == pn_Cmp_Ge)
- return get_tarval_b_true();
- else if (proj_nr == pn_Cmp_Lt)
- return get_tarval_b_false();
- }
- /* x <=/> MAX. This results in true/false. */
- else if (tab == get_mode_max(mode)) {
- if (proj_nr == pn_Cmp_Le)
- return get_tarval_b_true();
- else if (proj_nr == pn_Cmp_Gt)
- return get_tarval_b_false();
- }
-
- pn_Cmp cmp_result = vrp_cmp(aa, ab);
+ return new_tarval_from_long (pn_cmp & flags, mode_b);
+ }
+ } else if (mode_is_int(mode)) {
+ /* for integer values, we can check against MIN/MAX */
+ pn_Cmp cmp_result;
+
+ if (tv_l == get_mode_min(mode)) {
+ /* MIN <=/> x. This results in true/false. */
+ if (pn_cmp == pn_Cmp_Le)
+ return tarval_b_true;
+ else if (pn_cmp == pn_Cmp_Gt)
+ return tarval_b_false;
+ } else if (tv_r == get_mode_min(mode)) {
+ /* x >=/< MIN. This results in true/false. */
+ if (pn_cmp == pn_Cmp_Ge)
+ return tarval_b_true;
+ else if (pn_cmp == pn_Cmp_Lt)
+ return tarval_b_false;
+ } else if (tv_l == get_mode_max(mode)) {
+ /* MAX >=/< x. This results in true/false. */
+ if (pn_cmp == pn_Cmp_Ge)
+ return tarval_b_true;
+ else if (pn_cmp == pn_Cmp_Lt)
+ return tarval_b_false;
+ } else if (tv_r == get_mode_max(mode)) {
+ /* x <=/> MAX. This results in true/false. */
+ if (pn_cmp == pn_Cmp_Le)
+ return tarval_b_true;
+ else if (pn_cmp == pn_Cmp_Gt)
+ return tarval_b_false;
+ }
+
+ cmp_result = vrp_cmp(left, right);