Correctly commute flo:safe>= to flo:safe<=, not to safe:>=.
authorTaylor R Campbell <campbell@mumble.net>
Wed, 28 Nov 2018 09:19:49 +0000 (09:19 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Wed, 28 Nov 2018 09:19:49 +0000 (09:19 +0000)
Until LIAR's RTL code compression was taught to search through
object->float, this code path appears to have been impossible to
exercise.

src/compiler/machines/x86-64/rulflo.scm
tests/runtime/test-flonum.scm

index 0735391ee7c47425dd782343331bcf5fea4503c4..87fd3f2fab1983061e3cac576c1e101262691003 100644 (file)
@@ -339,7 +339,7 @@ USA.
     ((FLONUM-IS-LESS?) 'FLONUM-IS-GREATER?)
     ((FLONUM-IS-LESS-OR-EQUAL?) 'FLONUM-IS-GREATER-OR-EQUAL?)
     ((FLONUM-IS-GREATER?) 'FLONUM-IS-LESS?)
-    ((FLONUM-IS-GREATER-OR-EQUAL?) 'FLONUM-IS-GREATER-OR-EQUAL?)
+    ((FLONUM-IS-GREATER-OR-EQUAL?) 'FLONUM-IS-LESS-OR-EQUAL?)
     ((FLONUM-IS-UNORDERED?) 'FLONUM-IS-UNORDERED?)
     ((FLONUM-IS-LESS-OR-GREATER?) 'FLONUM-IS-LESS-OR-GREATER?)
     (else (error "commute-flonum-predicate: Unknown predicate" predicate))))
index 84a0421232c610cc60ebd9b890703b407804559e..bf949d2512fb39c2b8e11b2b98fa0fda55884f45 100644 (file)
@@ -335,12 +335,6 @@ USA.
        (define-lconstcomp-test (symbol name '/lconst) safe unsafe x0 cases)
        (define-rconstcomp-test (symbol name '/rconst) safe unsafe x0 cases)))))
 
-(define expect-failure-x86-64
-  (if (and (eq? microcode-id/compiled-code-type 'x86-64)
-           (compiled-procedure? (lambda (x) x)))
-      expect-failure
-      #!default))
-
 (define-constcomp-test '< flo:safe< flo:< 0.
   `((-inf.0 #f #t)
     (-1. #f #t)
@@ -375,14 +369,14 @@ USA.
     (+nan.0 #f #f)))
 
 (define-lconstcomp-test '>=/lconst flo:safe>= flo:>= 0.
-  `((-inf.0 #t #f ,expect-failure-x86-64)
-    (-1. #t #f ,expect-failure-x86-64)
-    (,subnormal- #t #f ,expect-failure-x86-64)
+  `((-inf.0 #t #f)
+    (-1. #t #f)
+    (,subnormal- #t #f)
     (-0. #t #t)
     (+0. #t #t)
-    (,subnormal+ #f #t ,expect-failure-x86-64)
-    (+1. #f #t ,expect-failure-x86-64)
-    (+inf.0 #f #t ,expect-failure-x86-64)
+    (,subnormal+ #f #t)
+    (+1. #f #t)
+    (+inf.0 #f #t)
     (+nan.0 #f #f)))
 
 (define-rconstcomp-test '>=/rconst flo:safe>= flo:>= 0.
@@ -441,14 +435,14 @@ USA.
     (+nan.0 #f #f)))
 
 (define-lconstcomp-test '>=/lconst flo:safe>= flo:>= 1.
-  `((-inf.0 #t #f ,expect-failure-x86-64)
-    (-1. #t #f ,expect-failure-x86-64)
-    (,subnormal- #t #f ,expect-failure-x86-64)
-    (-0. #t #f ,expect-failure-x86-64)
-    (+0. #t #f ,expect-failure-x86-64)
-    (,subnormal+ #t #f ,expect-failure-x86-64)
+  `((-inf.0 #t #f)
+    (-1. #t #f)
+    (,subnormal- #t #f)
+    (-0. #t #f)
+    (+0. #t #f)
+    (,subnormal+ #t #f)
     (+1. #t #t)
-    (+inf.0 #f #t ,expect-failure-x86-64)
+    (+inf.0 #f #t)
     (+nan.0 #f #f)))
 
 (define-rconstcomp-test '>=/rconst flo:safe>= flo:>= 1.