diff --git a/collects/tests/typed-scheme/optimizer/generic/magnitude.rkt b/collects/tests/typed-scheme/optimizer/generic/magnitude.rkt new file mode 100644 index 0000000000..aa0f1fc5b3 --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/generic/magnitude.rkt @@ -0,0 +1,5 @@ +#lang typed/racket/base #:optimize + +(require racket/unsafe/ops) + +(magnitude 3.0+4.0i) \ No newline at end of file diff --git a/collects/tests/typed-scheme/optimizer/generic/real-part-loop.rkt b/collects/tests/typed-scheme/optimizer/generic/real-part-loop.rkt new file mode 100644 index 0000000000..3b333b19da --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/generic/real-part-loop.rkt @@ -0,0 +1,10 @@ +#lang typed/racket/base #:optimize + +(require racket/unsafe/ops) + +(ann + (let loop ([v 0.0+1.0i]) + (if (> (real-part v) 70000.2) + 0 + (loop (+ v 3.6)))) + Integer) diff --git a/collects/tests/typed-scheme/optimizer/hand-optimized/magnitude.rkt b/collects/tests/typed-scheme/optimizer/hand-optimized/magnitude.rkt new file mode 100644 index 0000000000..dca61771af --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/hand-optimized/magnitude.rkt @@ -0,0 +1,12 @@ +#lang racket/base + +(require racket/unsafe/ops) + +(let* ((unboxed-real-1 '3.0) + (unboxed-imag-2 '4.0) + (unboxed-real-3 + (unsafe-flsqrt + (unsafe-fl+ (unsafe-fl* unboxed-real-1 unboxed-real-1) (unsafe-fl* unboxed-imag-2 unboxed-imag-2))))) + unboxed-real-3) + +(void) diff --git a/collects/tests/typed-scheme/optimizer/hand-optimized/real-part-loop.rkt b/collects/tests/typed-scheme/optimizer/hand-optimized/real-part-loop.rkt new file mode 100644 index 0000000000..a0138b876d --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/hand-optimized/real-part-loop.rkt @@ -0,0 +1,19 @@ +#lang racket/base + +(require racket/unsafe/ops) + +(let-values (((unboxed-real-1) '0.0)) + (let-values (((unboxed-imag-2) '1.0)) + ((letrec-values (((loop) + (lambda (unboxed-real-1 unboxed-imag-2) + (if (unsafe-fl> (let-values () unboxed-real-1) '70000.2) + '0 + (let-values (((unboxed-float-1) '3.6)) + (let-values (((unboxed-real-2) (unsafe-fl+ unboxed-real-1 unboxed-float-1))) + (let-values (((unboxed-imag-3) unboxed-imag-2)) (loop unboxed-real-2 unboxed-imag-3)))))))) + loop) + unboxed-real-1 + unboxed-imag-2))) + +(void) + diff --git a/collects/tests/typed-scheme/optimizer/non-optimized/magnitude.rkt b/collects/tests/typed-scheme/optimizer/non-optimized/magnitude.rkt new file mode 100644 index 0000000000..aa0f1fc5b3 --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/non-optimized/magnitude.rkt @@ -0,0 +1,5 @@ +#lang typed/racket/base #:optimize + +(require racket/unsafe/ops) + +(magnitude 3.0+4.0i) \ No newline at end of file diff --git a/collects/tests/typed-scheme/optimizer/non-optimized/real-part-loop.rkt b/collects/tests/typed-scheme/optimizer/non-optimized/real-part-loop.rkt new file mode 100644 index 0000000000..fd36bf0a17 --- /dev/null +++ b/collects/tests/typed-scheme/optimizer/non-optimized/real-part-loop.rkt @@ -0,0 +1,8 @@ +#lang typed/racket/base + +(ann + (let loop ([v 0.0+1.0i]) + (if (> (real-part v) 70000.2) + 0 + (loop (+ v 3.6)))) + Integer)