Commit Graph

665 Commits (28d38b38f0c928b87e02de541e32d85758818e9f)

Author SHA1 Message Date
Joe Groff 84d49c8463 math.vectors.simd.cords vocab that defines vector cords 2009-11-25 18:01:58 -08:00
Joe Groff 148a7a90a1 move cords to sequences.cords 2009-11-24 22:56:42 -08:00
Joe Groff 9792a00e23 remove mentions of 256-bit vectors from math.vectors.simd 2009-11-24 22:26:16 -08:00
Joe Groff bd7183478c fix math.vectors.conversion help-lint 2009-11-24 22:20:43 -08:00
Joe Groff b5f11ec120 update math.vectors.conversion 2009-11-24 20:53:40 -08:00
Doug Coleman e8a064c8b7 revert math.matrices.elimintion until someone fixes it properly 2009-11-24 20:41:59 -06: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
Slava Pestov 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06: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 993631e44c Merge branch 'master' of git://factorcode.org/git/factor into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-14 21:02:39 -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
Slava Pestov d630e1494c Fix struct field alignment on PowerPC 2009-11-10 19:34:14 -06:00
Slava Pestov 0de1335d88 Fix some test failures 2009-11-10 16:48:06 -06:00
Joe Groff b09b0f0686 Merge branch 'master' into simd-cleanup 2009-11-07 22:26:09 -06:00
Philipp Brüschweiler 4d185704d6 sequences: rename virtual-seq to virtual-exemplar 2009-11-07 00:06:26 +01:00
Slava Pestov b46c055699 math: fix test failures on 32-bit 2009-11-06 04:50:41 -06:00
Joe Groff 078e999e37 Merge branch 'master' of git://factorcode.org/git/factor 2009-11-05 22:23:21 -06:00
Joe Groff 25d384abe4 remove non-primitive-related uses of tuck from basis 2009-11-05 17:03:24 -06:00
Joe Groff 131605be2e eliminate spin from basis 2009-11-05 14:05:06 -06:00
Joe Groff a279b360eb Merge branch 'master' into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-05 11:27:08 -06:00
Joe Groff cf28782533 more intrinsic madness 2009-11-05 09:52:57 -06:00
Doug Coleman ace4476232 Merge branch 'master' of git://factorcode.org/git/factor 2009-11-05 01:58:40 -06:00
Slava Pestov 39c192c829 Align stack pointer on non-Mac OS X x86-32 platforms, and use aligned loads/stores for SIMD values 2009-11-03 23:51:44 -06:00
Joe Groff ecf7119fec typos 2009-11-03 21:38:55 -06:00
Joe Groff e01e417ae3 remove math.vectors .specialization, .simd.functor, .simd.intrinsics 2009-11-02 15:00:39 -06:00
Joe Groff 1f9dcf31e6 redo math.vectors.simd to use generics for specialization 2009-11-02 14:59:07 -06:00
Joe Groff 4da91ee689 genericize vector ops 2009-11-02 14:21:19 -06:00
Doug Coleman c9d233052d add sorted-histogram word 2009-11-01 23:16:26 -06:00
Joe Groff f1ed3b1787 fix float integer^ for denormal results 2009-11-01 00:43:04 -05:00
Doug Coleman c20a5166ad fix help lint 2009-10-30 13:35:20 -05:00
Doug Coleman 74d8554ca1 move docs for nth-root, fix docs for minmax 2009-10-30 06:37:02 -05:00
Doug Coleman 846d9ba6c4 slightly better math.statistics docs 2009-10-30 03:06:03 -05:00
Doug Coleman a39edf9500 move histogram to math.statistics, write a main article for math.statistics 2009-10-30 02:55:54 -05:00
Doug Coleman 897ef1aa62 move nth-root to math.functions, use exchange-unsafe in math.statistics 2009-10-30 02:35:51 -05:00
Joe Groff 11dd8720f4 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-30 00:42:37 -05:00
Joe Groff ca8d4c15f4 add ##shl-vector-imm and ##shr-vector-imm insn variants. use merge/shr instead of compare/merge to do signed unpacks 2009-10-30 00:41:19 -05:00
Doug Coleman 1ee8c8f5eb sigma -> map-sum 2009-10-29 14:34:04 -05:00
Joe Groff c6761710a6 Merge branch 'master' of http://factorcode.org/git/factor
Conflicts:
	basis/locals/locals.factor
	basis/peg/peg.factor
	extra/infix/infix.factor
2009-10-28 16:17:24 -05:00
Joe Groff 22a9be5ea5 update existing code to use :> ( ) when possible 2009-10-28 16:11:33 -05:00
Doug Coleman b5fd809209 memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Doug Coleman a57e990af7 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Slava Pestov 34d3d4962a change-each -> map!, deep-change-each -> deep-map! 2009-10-27 22:32:56 -05:00
Slava Pestov ed3de4ae29 math.matrices: remove dead code 2009-10-23 07:01:57 -05:00
Slava Pestov d9796a577c mirrors: don't depend on specialized-arrays, it pulls in too much 2009-10-23 04:24:20 -05:00
Joe Groff d85432440f math.matrices: vectorizable definition of cross 2009-10-22 16:26:25 -05:00
Doug Coleman 4b5ed34fe8 fix more docs typos 2009-10-21 18:11:24 -05:00
Doug Coleman aabaccff5e fix a bunch of typos in docs 2009-10-21 17:40:43 -05:00
Joe Groff 1a3ea6b6f5 vif combinator 2009-10-20 22:49:20 -05:00
Joe Groff a2976083be generate unsigned vector comparison fallbacks using min/max or xor/signed compare 2009-10-20 22:30:57 -05:00
Joe Groff a0a816e88a generate better fallback code for vmin/vmax intrinsics 2009-10-20 19:22:38 -05:00
Joe Groff d570e58374 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-20 17:42:29 -05:00
Joe Groff d82546ee78 clean up vector lerp functions to be better vectorizable 2009-10-20 17:11:22 -05:00
Slava Pestov d171a5ac20 math.vectors: fix behavioral difference between generic vector vmin vmax and float specialized versions thereof 2009-10-20 07:06:44 -05:00
Joe Groff 16038161d9 inline trilerp so that perlin-noise is pretty much instantaneous 2009-10-19 15:11:59 -05:00
Joe Groff 38e58fca39 make vshuffle-bytes intrinsic for any shuffle mask type 2009-10-19 12:25:55 -05:00
Joe Groff 1fb2b6b78f math.vectors.conversion docs 2009-10-18 21:25:09 -05:00
Joe Groff e32c18525b update vshuffle docs 2009-10-18 16:34:44 -05:00
Joe Groff bd9dd863dc scuttle bogus math.vectors.simd test 2009-10-17 18:47:31 -05:00
Joe Groff ecf7819710 fix sporadic "fall-through in cond" failure in float math.vectors.simd tests 2009-10-17 16:54:51 -05:00
Joe Groff 31cd3b9ec1 fix type propagation information put on non-SIMD specializations of vany?, vall?, vnone? 2009-10-17 11:21:08 -05:00
Joe Groff 0c8ad9f66c make hlshift/hrshift simd tests endian agnostic 2009-10-17 00:34:35 -05:00
Slava Pestov 19e242e18f syntax: fix docs for : 2009-10-16 23:45:10 -05:00
Joe Groff 764e451784 improve error reporting of failing simd fallbacks 2009-10-16 16:34:26 -05:00
Joe Groff bff46b80a8 fix unsigned vector unpack 2009-10-16 14:25:33 -05:00
Slava Pestov 049ece7dff math.vectors.simd: fix typos in docs reported by Ed Swartz 2009-10-13 05:13:22 -05:00
Joe Groff aa31f7105a fix fallbacks for vall?, vany?, vnone? 2009-10-10 13:01:13 -05:00
Joe Groff 6899b128c8 change the simd-struct tests to cover integer vector slots 2009-10-10 12:23:25 -05:00
Joe Groff 61befc8bb1 have vshuffle accept simd-128 variable byte shuffles 2009-10-10 11:30:11 -05:00
Joe Groff 5158a12d32 rename ##shuffle-vector to ##shuffle-vector-imm, and add a new ##shuffle-vector for dynamic shuffles. have vshuffle use ##shuffle-vector to do word and byte shuffles on x86 2009-10-09 21:26:27 -05:00
Joe Groff 2bfcd7ed81 generate better code for vabs when instruction isn't available instead of using software fallback (-0.0 andn for floats, x > 0 ? x : -x for signed ints, nop for unsigned ints) 2009-10-09 14:24:55 -05:00
Joe Groff 4972fbcbc9 implement vneg as an intrinsic in terms of load -0, subtract 2009-10-09 13:16:39 -05:00
Joe Groff a083eb91c7 add SIMDS: ... ; and SPECIALIZED-ARRAYS: ... ; syntax 2009-10-09 10:43:37 -05:00
Joe Groff f79d650c82 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-08 11:37:12 -05:00
Joe Groff ac10ccd293 refactor math.vectors.conversion 2009-10-08 11:35:40 -05:00
Doug Coleman db780c0848 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 20:53:04 -05:00
Joe Groff 43b51ef2eb decompose %unpack-vector-head/tail into %compare-vector/%merge-vector-head/tail or %tail>head-vector/%unpack-vector-head insns when there isn't an actual unpack insn; get rid of fake x86 implementations 2009-10-07 14:09:46 -05:00
Doug Coleman cc52544ef8 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 12:47:44 -05:00
Joe Groff 2d79729193 fix ##load-constant/##scalar>vector folding when constant is a fixnum 2009-10-07 12:46:08 -05:00
Doug Coleman 99458eb4fe Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 12:33:44 -05:00
Joe Groff a13e75f4f4 don't generate a ##not-vector instruction if the cpu doesn't have one; instead, fall back to a ##fill-vector/##xor-vector combo. get rid of pretend %not-vector in cpu.x86 2009-10-07 11:59:36 -05:00
Joe Groff 867cc3e310 fix math.vectors.simd test load failure 2009-10-07 11:56:57 -05:00
Doug Coleman f10f7e4815 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-07 11:52:34 -05:00
Joe Groff 9500976d29 break vector conversion intrinsics off to a math.vectors.conversion.backend vocab so the whole conversion vocab doesn't get sucked in by the compiler 2009-10-06 21:28:33 -05:00
Joe Groff 9c823b877b add some math.vectors.conversion tests to cover some failing cases 2009-10-06 20:21:08 -05:00
Joe Groff 96cb1d5038 glue conversion intrinsics to instructions 2009-10-06 20:13:38 -05:00
Joe Groff f103018580 assert that vconvert's inputs are of the right type 2009-10-06 17:42:36 -05:00
Joe Groff 0cbae3362f math.vectors.conversion vocab with primitive words (to be mapped to intrinsics soon) and a super all-in-one "vconvert" macro wrapping the whole thing 2009-10-06 14:37:16 -05:00
Doug Coleman f7c49961fb fix a bug in bit-count that assumed 32bit fixnums, make bit-count work on byte-arrays, SIMD types, specialized-arrays, and aliens 2009-10-05 18:55:26 -05:00
Joe Groff 3e44e0bb02 rename SIMD vmerge and kids to (vmerge), make new vmerge more generally useful 2009-10-05 17:55:39 -05:00
Joe Groff 2d13aa8e6f typo in vmerge-head, vmerge-tail docs 2009-10-05 11:14:14 -05:00
Joe Groff f8a4469c5f go back to using random instead of uniform-random-float in math.vectors.simd tests because the software and SIMD implementations of norm and v. can sporadically diverge when their different operation orders lead to cancellation of catastrophically small inputs 2009-10-03 22:57:04 -05:00
Joe Groff c5993dbb39 fix v? software fallback 2009-10-03 22:37:45 -05:00
Joe Groff dca9d3e535 add %merge-vector-head and %merge-vector-tail instructions to back vmerge 2009-10-03 21:48:53 -05:00
Joe Groff 398b460263 link vmerge into math.vectors docs 2009-10-03 21:48:16 -05:00
Joe Groff a233acf1b2 software version of vmerge word (to be backed by UNPCK instructions on x86 and VMRG instructions on ppc) 2009-10-03 20:22:37 -05:00
Joe Groff 6c79f8e1e5 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-03 11:48:56 -05:00
Joe Groff 16cccffb71 sprinkle some NaNs onto math.vectors.simd fuzz tests to improve flavor 2009-10-03 11:47:02 -05:00
Joe Groff 335df20713 add intrinsics for v<=, v<, v=, v>, v>=, vunordered? 2009-10-03 11:29:34 -05:00
Slava Pestov 5dfe721e0c math.floats.env: disable trap tests on OpenBSD i386 for now, until The World's Most Secure Operating System fixes a local DoS exploit 2009-10-03 10:59:54 -05:00
Joe Groff e2e75c6b3a add intrinsic for vnot/vbitnot 2009-10-02 20:04:28 -05:00
Doug Coleman 4b1b3ffbc7 i messed up a merge. weird 2009-10-02 16:05:00 -05:00
Doug Coleman ff3ed1a3de Merge branch 'master' of git://factorcode.org/git/factor into klazuka
Conflicts:
	basis/math/vectors/vectors-docs.factor
2009-10-02 15:59:19 -05:00
Doug Coleman c10b6d4ba7 Merge branch 'docs' of git://github.com/klazuka/factor into klazuka
Conflicts:
	basis/math/vectors/vectors-docs.factor
2009-10-02 15:58:45 -05:00
Joe Groff 271e6ddde5 give math.vectors shuffle words their own docs subsection in anticipation of having more ops in there 2009-10-02 15:37:49 -05:00
Joe Groff 147a73441f proofreading math.vectors docs 2009-10-02 15:18:42 -05:00
Joe Groff a4f8f87a21 add notes to math.vectors docs about simd booleans 2009-10-02 15:11:06 -05:00
Joe Groff e153d544eb implement vand, vor, vandn, and vxor as bitwise intrinsics for simd types 2009-10-02 14:17:01 -05:00
Keith Lazuka 8f79ea91ba docs: change $subsection to $subsections 2009-10-02 12:15:48 -04:00
Joe Groff 34eb7a9286 change vector logical words to reuse the input sequence types so that they work as simd fallbacks 2009-10-01 23:49:53 -05:00
Joe Groff 0bc690e749 define simd equal? methods as v= vall? 2009-10-01 23:46:37 -05:00
Joe Groff 9d424a1092 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/compiler/codegen/codegen.factor
2009-10-01 23:14:16 -05:00
Joe Groff c08cc860bf create special intrinsic wrappers for 256-vector>scalar operations so that vall?, vany?, vnone? work on 256-vectors 2009-10-01 23:07:10 -05:00
Joe Groff aaeaa9c506 add tests for v=, vany?, vall?, vnone? 2009-10-01 21:24:14 -05:00
Joe Groff 228ad950bb %test-vector instruction for vany?, vall?, vnone? 2009-10-01 15:35:38 -05:00
Joe Groff 94070c11aa %compare-vector instruction (only does v= for now) 2009-10-01 14:31:37 -05:00
Joe Groff 2303c0107e add software vall?, vany?, vnone? words 2009-10-01 13:21:10 -05:00
Slava Pestov 16d08c01e3 math.vectors.simd.functor: don't open-code simd-nth and simd-with if we cannot generate double precision FP code. Should fix illegal instruction trap on CPUs with only SSE1 2009-10-01 07:36:50 -05:00
Joe Groff ef9abec15a write v? and vmask in terms of bitwise ops 2009-10-01 00:09:25 -05:00
Joe Groff 3ba79be651 Revert "add a %blend-vector intrinsic for v?"
This reverts commit 21e4b28b67.
2009-09-30 23:40:37 -05:00
Joe Groff 37a091a188 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-30 23:04:04 -05:00
Joe Groff 21e4b28b67 add a %blend-vector intrinsic for v? 2009-09-30 23:03:59 -05:00
Slava Pestov 65421b111b math.vectors.simd: use fallbacks for hlshift, hrshift, vshuffle if parameter is not a literal;al; element access in int-4 on x86-64 now sign-extends the value; don't throw error at compile time if parameter for vshuffle does not have enough elements 2009-09-30 20:04:37 -05:00
Joe Groff 36918a03d9 accept f and t as elements of literal simd vectors, storing binary all-zeroes or all-ones 2009-09-30 19:04:02 -05:00
Joe Groff d065203df4 break math.vectors docs into subsections 2009-09-30 13:21:25 -05:00
Joe Groff ddcbdae778 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-30 00:07:45 -05:00
Joe Groff f38107c4cd docs for new math.vectors logical ops 2009-09-30 00:07:37 -05:00
Slava Pestov 14e82bcd7a math.vectors.simd: fix bad comparison logic in unit tests 2009-09-29 23:46:21 -05:00
Slava Pestov f1ce5ca191 math.functions: ~ now raises an invalid operation FP trap if one of the inputs is NaN 2009-09-29 23:41:08 -05:00
Slava Pestov 88d1488f1f Merge branch 'master' of git://factorcode.org/git/factor 2009-09-29 22:59:58 -05:00
Slava Pestov 1c8662ce4a math.vectors.simd: add vbroadcast intrinsic, fix integer overflow issues 2009-09-29 22:58:20 -05:00
Joe Groff f6bf60ec4e math.matrices.simd versions of frustum-matrix4 and rotation-matrix4 2009-09-29 22:54:11 -05:00
Joe Groff 3c497cd2b8 add a "vmask" vector op to selectively zero out elements 2009-09-29 18:10:36 -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 a6e8277b2c math.vectors.simd: add vshuffle intrinsic 2009-09-28 23:12:13 -05:00
Slava Pestov db217295b0 Work in progress 2009-09-28 17:31:34 -05:00
Slava Pestov e8243f7504 Fix some load errors in various places 2009-09-28 16:33:39 -05:00
Slava Pestov f08521bf83 Fixing various test failures caused by C type parser change, and clarify C type docs some more 2009-09-28 08:48: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 4df307fdae Merge branch 'master' of git://factorcode.org/git/factor 2009-09-28 02:19:05 -05:00
Slava Pestov 10c5fe5933 math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics 2009-09-28 02:17:46 -05:00
Joe Groff ebaa9d1dd7 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-27 22:21:42 -05:00
Joe Groff e8cefe07b3 take a shot at making other platform vocabs c-type-string-free 2009-09-27 19:25:34 -05:00
Slava Pestov 23ec1b85e8 Merge branch 'master' of git://factorcode.org/git/factor 2009-09-27 17:18:16 -05:00