Commit Graph

46 Commits (40f58f27d6598f4cb0448b16623b582692c7dd8f)

Author SHA1 Message Date
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