Slava Pestov
c0f39aa99d
Move remaining sequence operations from generalizations to sequences.generalizations where they belong
2010-05-18 18:36:47 -04:00
Joe Groff
349397e67c
math.vectors, math.vectors.simd: add user-facing vshuffle2 word
2010-05-14 02:47:05 -07:00
Daniel Ehrenberg
d9878f81d7
Changing require-when usages to the new syntax for require-when
2010-04-18 14:29:24 -05:00
Daniel Ehrenberg
e9991a62fb
Making more vocabs use require-when
2010-03-18 01:39:30 -04:00
Slava Pestov
c1e7a3ffc2
Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams
2010-02-24 20:18:41 +13:00
Slava Pestov
7a995794e2
Make specialized arrays and SIMD types final so that typed can unbox them
2010-02-18 02:39:40 +13:00
Slava Pestov
880fb747fc
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Joe Groff
d6c1137115
move simd operation methods onto simd-128 instead of concrete classes to save image space
2009-12-05 21:19:17 -08:00
Joe Groff
82bb560b00
Merge branch 'master' of git://factorcode.org/git/factor
2009-12-05 17:18:49 -08:00
Joe Groff
1ad9dc14b4
fix simd tests
2009-12-05 17:17:16 -08:00
Slava Pestov
9e5c44dd11
math.vectors.simd: ensure that set-alien-vector is open-coded in the actual set-nth-unsafe method on SIMD specialized arrays, not just inlined instances
2009-12-05 18:20:57 -05:00
Joe Groff
d674ff8191
simd intrinsic implementation for v*high, v*hs+, vavg, and vsad
2009-12-05 14:52:18 -08:00
Joe Groff
c7f4284710
add v*high, v*hs+, vavg, and vsad operations to math.vectors
2009-12-05 11:32:31 -08:00
Joe Groff
c23e3eb4ef
move sequence instance to individual SIMD types rather than simd-128 parent type so that "hashcode*" doesn't attempt to use the sequence implementation of hashcode on abstract simd-128 objects
2009-12-04 13:22:59 -08:00
Joe Groff
da394d42c3
"norm" doesn't need to be generic, "norm-sq sqrt" always works
2009-11-26 11:15:35 -08:00
Joe Groff
4f10afa3e9
trick math.vectors.simd into making nicer quotations
2009-11-25 20:24:09 -08:00
Joe Groff
b5f11ec120
update math.vectors.conversion
2009-11-24 20:53:40 -08:00
Joe Groff
90cd1b47f7
make math.vectors.simd tests pass again
2009-11-24 18:30:12 -08:00
Joe Groff
faf4df9043
scalar fallbacks for simd intrinsics
2009-11-23 21:24:55 -08:00
Joe Groff
fe03ff1a5d
typo
2009-11-19 12:17:14 -08:00
Joe Groff
3b17573c7c
break simd intrinsics into a separate vocab so they can be intrinsified before the simd methods compile
2009-11-19 11:53:46 -08:00
Joe Groff
ca40ddbf56
move methods back into simd functor so the intrinsics can compile
2009-11-19 11:29:15 -08:00
Joe Groff
46fa2fe880
fix effect of set-alien-vector
2009-11-18 22:18:42 -08:00
Joe Groff
b54a925d1e
enable simd intrinsics and fix first-pass compiler errors
2009-11-18 20:32:05 -08:00
Joe Groff
1030e16267
fixes for stronger stack checker
2009-11-14 22:25:00 -06:00
Joe Groff
9efff4a322
backend fixups
2009-11-14 20:59:03 -06:00
Joe Groff
db1ae26801
sever lingering dependencies on simd from compiler
2009-11-11 16:08:40 -06:00
Joe Groff
cf28782533
more intrinsic madness
2009-11-05 09:52:57 -06:00
Joe Groff
ecf7119fec
typos
2009-11-03 21:38:55 -06:00
Joe Groff
1f9dcf31e6
redo math.vectors.simd to use generics for specialization
2009-11-02 14:59:07 -06:00
Doug Coleman
b5fd809209
memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
2009-10-28 15:02:00 -05:00
Joe Groff
a083eb91c7
add SIMDS: ... ; and SPECIALIZED-ARRAYS: ... ; syntax
2009-10-09 10:43:37 -05:00
Slava Pestov
2b13245704
math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles
2009-09-29 04:48:11 -05:00
Slava Pestov
e8243f7504
Fix some load errors in various places
2009-09-28 16:33:39 -05:00
Slava Pestov
1109fb5725
math.vectors.simd: add intrinsic for int-4-boa, uint-4-boa, fix tests for C type parser change, fix software fallback for horizontal shifts
2009-09-28 06:34:22 -05:00
Slava Pestov
165496d2f2
Add longlong-2, ulonglong-2, longlong-4, ulonglong-4 SIMD types, fix int-4 multiplication on SSE2
2009-09-23 20:23:25 -05:00
Slava Pestov
dfb43bd2ca
More integer SIMD work
...
- move generated vocab support from specialized-arrays to vocabs.generated
- add fuzz testing to math.vectors.simd
- add alien type support for integer SIMD vectors
- SIMD: parsing word generates a SIMD type, instead of pre-generating them all in math.vectors.simd
2009-09-20 16:48:17 -05:00
Slava Pestov
ea2bcd69c7
math.vectors.simd: redesign to be more flexible, integer SIMD work in progress
2009-09-20 02:08:32 -05:00
Joe Groff
21a0722752
fix more ambiguities
2009-09-17 09:29:23 -05:00
Slava Pestov
c23e1dc1de
math.vectors.simd: remove useless dependency
2009-09-08 13:55:56 -05:00
Slava Pestov
136d6a42f3
math.vectors.simd: slightly faster 'sum' on 256-bit vectors: add the two components then do horizontal add, instead of doing a horizontal add on each one and adding the results
2009-09-04 02:23:25 -05:00
Slava Pestov
698f32c4a1
math.vectors.simd: define fallbacks for all vector constructors so that code can still work even if SIMD is not available
2009-09-03 21:37:55 -05:00
Slava Pestov
20dfbf7ac8
More SIMD work
...
- Rename SIMD types and register representations: <type>-<count> rather than <count><type>-array
- Make a functor to define 256-bit vector types, use it to define float-8 type
- Make SIMD instructions pure-insns so that they participate in value numbering
2009-09-03 20:58:56 -05:00
Slava Pestov
9cc705f6ba
math.vectors.simd: split off intrinsics into a sub-vocabulary, to avoid loading most of the SIMD code on bootstrap
2009-09-03 03:43:43 -05:00
Slava Pestov
f811208271
Detect SSE version and enable the correct set of SIMD intrinsics
2009-09-03 03:28:38 -05:00
Slava Pestov
52b99c050e
Initial implementation of SSE vector intrinsics:
...
- cpu.architecture: add SSE vector representations
- compiler.cfg.intrinsics.alien: remove an attempt at optimization that value numbering handles now
- compiler.cfg.representations: support instructions where the representation is set in the 'rep' slot, and support conversions between single and double floats
- alien-float, set-alien-float now use the single float representation, and the conversion is implicit; this fixes a long-standing bug where a register could get clobbered because of how %set-alien-float was defined on x86
- math.vectors.specialization: add support for SIMD specialization (where the vector word's body is replaced by another quotation), also specialize the 'sum' word
- math.vectors.simd: 4float-array, 2double-array, 4double-array types, and specializers for the math.vectors words
2009-09-03 02:33:07 -05:00