Commit Graph

277 Commits (81c6196dc488d73c9c47e5ccf94e6e8c94e75ad4)

Author SHA1 Message Date
Slava Pestov e11d1e37f5 math.vectors.simd: allow punning SIMD vectors between types 2009-09-04 02:35:58 -05:00
Slava Pestov 6494e7a53b 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 1fc809b643 math.vectors.simd: docs 2009-09-04 01:22:18 -05:00
Slava Pestov 6b5e40b2fc functors: support private words with DEFINES-PRIVATE; use this to make some words generated by math.vectors.simd.functor private 2009-09-04 01:21:59 -05:00
Slava Pestov 55c449c6e2 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 4d5a4222b6 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 bf81cb4259 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 906a0d212a Detect SSE version and enable the correct set of SIMD intrinsics 2009-09-03 03:28:38 -05:00
Slava Pestov ff8c70dbe0 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
Slava Pestov d19c403fee alien.structs: struct-type now has a class slot; fix specialized complex-float/double arrays 2009-08-09 16:10:11 -05:00
Slava Pestov 1cb0f3370b math.vectors.specialization: first attempt at some call site splitting for vector ops. Specialized array types generate customized variants of all vector words, if input types are known at compile time, a call to the specialized version is inserted 2009-08-09 03:07:33 -05:00
Slava Pestov 612e4b99b0 compiler.cfg.linear-scan.assignment: insert-copy did the wrong thing if the second interval had been split. Fixes compilation of 'trilerp' 2009-06-30 21:07:39 -05:00
Joe Groff 9685aea6fe homogeneous coordinates coated in nurbsauce 2009-05-21 20:55:44 -05:00
Joe Groff b73c8a0619 vector bilerp word 2009-05-20 10:26:55 -05:00
Joe Groff d90bb0f336 cut perlin-noise time in half 2009-05-10 10:41:50 -05:00
Joe Groff dd9af334a9 send bilerp upstream to spawn 2009-05-09 11:43:04 -05:00
Joe Groff 4b64d9a5e5 more vector operations; perlin noise vocab 2009-05-05 22:17:04 -05:00
Joe Groff 2a00f10d1a lerp functions 2009-05-05 13:55:00 -05:00
Slava Pestov ae0da1cf98 Fix conflict 2009-02-05 22:29:15 -06:00
Joe Groff ccdd8999e1 swizzle word to swizzle sequences 2009-02-04 19:46:19 -06:00
Slava Pestov f79041545a New distance word in math.vectors, replaces distance in math.points, more efficient 2008-11-29 10:19:23 -06:00
Aaron Schaefer e17f519480 Minor documentation fixes 2008-11-17 22:51:57 -05:00
Aaron Schaefer 9c27e9d61b Replace >r r> usage with dip in math.vectors 2008-11-17 18:17:14 -05:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov d5140cf248 Fix math.vectors unit tests 2008-09-12 15:52:43 -05:00
Slava Pestov f497c7e151 Move map-reduce combinator to core, re-implement norm-sq and v. for better performance 2008-09-12 11:29:12 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00