..
[sb-simd.git] / example-test.lisp
blob6be574db05d22a0615379acc25bc2e80e081f979
1 (in-package :cl-user)
3 (defun test-foo ()
4 (let ((arr1 (make-array 10 :element-type 'single-float :initial-element 0f0))
5 (arr2 (make-array 10 :element-type 'single-float :initial-element 0f0)))
7 (loop for i from 0 below 10
8 do (setf
9 (aref arr1 i) (float (* i 100))
10 (aref arr2 i) (float i)))
12 (format t "Before: ~S~%~S~%" arr1 arr2)
13 (format t "b <- a + b, idx 0~%")
15 (sb-sys:%primitive sb-vm::%sse-add/simple-array-single-float-1 arr2 arr2 arr1 0)
17 (format t "After: ~S~%~S~%" arr1 arr2)
19 (format t "a <- sqrt(b), idx 4~%")
21 (sb-sys:%primitive sb-vm::%sse-sqrt/simple-array-single-float-1 arr1 arr2 4)
23 (format t "After: ~S~%~S~%" arr1 arr2)
27 (defun test-2 ()
28 (let ((arr1 (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0))
29 (arr2 (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0)))
31 (loop for i from 0 below 16 do (setf (aref arr1 i) (* (1+ i) 10)
32 (aref arr2 i) (1+ i)))
34 (format t "Before: ~S~%~S~%" arr1 arr2)
35 (format t "b <- a+b, idx 4~%")
37 (sb-sys:%primitive sb-vm::%sse-add/simple-array-unsigned-byte-8-1 arr2 arr1 arr2 4)
39 (format t "After: ~S~%~S~%" arr1 arr2)