1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien accessors alien.c-types byte-arrays compiler.units
4 cpu.architecture locals kernel math math.vectors.simd
5 math.vectors.simd.intrinsics ;
6 IN: math.vectors.simd.alien
8 :: define-simd-128-type ( class rep -- )
12 [ rep alien-vector class boa ] >>getter
13 [ [ underlying>> ] 2dip rep set-alien-vector ] >>setter
17 class name>> typedef ;
19 :: define-simd-256-type ( class rep -- )
25 [ 16 + >fixnum rep alien-vector ] 2bi
29 [ [ underlying1>> ] 2dip rep set-alien-vector ]
30 [ [ underlying2>> ] 2dip 16 + >fixnum rep set-alien-vector ]
36 class name>> typedef ;
38 float-4 float-4-rep define-simd-128-type
39 double-2 double-2-rep define-simd-128-type
40 float-8 float-4-rep define-simd-256-type
41 double-4 double-2-rep define-simd-256-type
42 ] with-compilation-unit