1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 17:20:29 +02:00

Fix unboxed immediate range comparison type inference

* module/language/cps/types.scm (imm-u64-<, imm-s64-<): Fix minimum
  computations.
This commit is contained in:
Andy Wingo 2017-11-23 18:13:37 +01:00
parent 908d5ea169
commit aa22f1f677

View file

@ -1043,7 +1043,7 @@ minimum, and maximum."
(restrict! a &u64 (max (&min a) b) (&max a))))
(define-predicate-inferrer/param (imm-u64-< b a true?)
(if true?
(restrict! a &u64 (max (1+ (&min a)) b) (&max a))
(restrict! a &u64 (max (&min a) (1+ b)) (&max a))
(restrict! a &u64 (&min a) (min (&max a) b))))
(define-predicate-inferrer/param (s64-imm-= b a true?)
@ -1055,7 +1055,7 @@ minimum, and maximum."
(restrict! a &s64 (max (&min a) b) (&max a))))
(define-predicate-inferrer/param (imm-s64-< b a true?)
(if true?
(restrict! a &s64 (max (1+ (&min a)) b) (&max a))
(restrict! a &s64 (max (&min a) (1+ b)) (&max a))
(restrict! a &s64 (&min a) (min (&max a) b))))