Joe Groff
|
8a6b0a1453
|
generate unsigned vector comparison fallbacks using min/max or xor/signed compare
|
2009-10-20 22:30:57 -05:00 |
Joe Groff
|
cb36111a3c
|
generate better fallback code for vmin/vmax intrinsics
|
2009-10-20 19:22:38 -05:00 |
Joe Groff
|
6f72c3ca24
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-20 17:42:29 -05:00 |
Joe Groff
|
34344be636
|
clean up vector lerp functions to be better vectorizable
|
2009-10-20 17:11:22 -05:00 |
Slava Pestov
|
248f178e64
|
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
|
b212e8edd0
|
inline trilerp so that perlin-noise is pretty much instantaneous
|
2009-10-19 15:11:59 -05:00 |
Joe Groff
|
b411f1701a
|
make vshuffle-bytes intrinsic for any shuffle mask type
|
2009-10-19 12:25:55 -05:00 |
Joe Groff
|
fca550d567
|
math.vectors.conversion docs
|
2009-10-18 21:25:09 -05:00 |
Joe Groff
|
2a156795c5
|
update vshuffle docs
|
2009-10-18 16:34:44 -05:00 |
Joe Groff
|
0653bae7ec
|
scuttle bogus math.vectors.simd test
|
2009-10-17 18:47:31 -05:00 |
Joe Groff
|
b9d2c068a4
|
fix sporadic "fall-through in cond" failure in float math.vectors.simd tests
|
2009-10-17 16:54:51 -05:00 |
Joe Groff
|
421b61f0e8
|
fix type propagation information put on non-SIMD specializations of vany?, vall?, vnone?
|
2009-10-17 11:21:08 -05:00 |
Joe Groff
|
7f001ee312
|
make hlshift/hrshift simd tests endian agnostic
|
2009-10-17 00:34:35 -05:00 |
Slava Pestov
|
4ed91ff5ee
|
syntax: fix docs for :
|
2009-10-16 23:45:10 -05:00 |
Joe Groff
|
dd6308ead5
|
improve error reporting of failing simd fallbacks
|
2009-10-16 16:34:26 -05:00 |
Joe Groff
|
448ef2f1d5
|
fix unsigned vector unpack
|
2009-10-16 14:25:33 -05:00 |
Slava Pestov
|
48f4799505
|
math.vectors.simd: fix typos in docs reported by Ed Swartz
|
2009-10-13 05:13:22 -05:00 |
Joe Groff
|
588899a1b3
|
fix fallbacks for vall?, vany?, vnone?
|
2009-10-10 13:01:13 -05:00 |
Joe Groff
|
1407804393
|
change the simd-struct tests to cover integer vector slots
|
2009-10-10 12:23:25 -05:00 |
Joe Groff
|
d9002127fa
|
have vshuffle accept simd-128 variable byte shuffles
|
2009-10-10 11:30:11 -05:00 |
Joe Groff
|
3bc097f6ff
|
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
|
471c86a110
|
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
|
01f5d392be
|
implement vneg as an intrinsic in terms of load -0, subtract
|
2009-10-09 13:16:39 -05:00 |
Joe Groff
|
07aa2620c6
|
add SIMDS: ... ; and SPECIALIZED-ARRAYS: ... ; syntax
|
2009-10-09 10:43:37 -05:00 |
Joe Groff
|
1bb8a99368
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-08 11:37:12 -05:00 |
Joe Groff
|
531cfa1c33
|
refactor math.vectors.conversion
|
2009-10-08 11:35:40 -05:00 |
Doug Coleman
|
e758d4061a
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-07 20:53:04 -05:00 |
Joe Groff
|
f2c9eb79e2
|
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
|
901f87e752
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-07 12:47:44 -05:00 |
Joe Groff
|
47cfb7d3a5
|
fix ##load-constant/##scalar>vector folding when constant is a fixnum
|
2009-10-07 12:46:08 -05:00 |
Doug Coleman
|
59c1f3f73e
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-07 12:33:44 -05:00 |
Joe Groff
|
34def34481
|
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
|
8873b7939a
|
fix math.vectors.simd test load failure
|
2009-10-07 11:56:57 -05:00 |
Doug Coleman
|
bfb2493d68
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-07 11:52:34 -05:00 |
Joe Groff
|
4d4da7ac23
|
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
|
a319dde8b5
|
add some math.vectors.conversion tests to cover some failing cases
|
2009-10-06 20:21:08 -05:00 |
Joe Groff
|
785f8620fd
|
glue conversion intrinsics to instructions
|
2009-10-06 20:13:38 -05:00 |
Joe Groff
|
4456b1f3f9
|
assert that vconvert's inputs are of the right type
|
2009-10-06 17:42:36 -05:00 |
Joe Groff
|
166ea6bc10
|
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
|
b56880bfd7
|
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
|
fbe810fc3b
|
rename SIMD vmerge and kids to (vmerge), make new vmerge more generally useful
|
2009-10-05 17:55:39 -05:00 |
Joe Groff
|
cf4df7eb66
|
typo in vmerge-head, vmerge-tail docs
|
2009-10-05 11:14:14 -05:00 |
Joe Groff
|
7ed8f00b0f
|
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
|
626954a071
|
fix v? software fallback
|
2009-10-03 22:37:45 -05:00 |
Joe Groff
|
0c9c3d4859
|
add %merge-vector-head and %merge-vector-tail instructions to back vmerge
|
2009-10-03 21:48:53 -05:00 |
Joe Groff
|
05c722ea0c
|
link vmerge into math.vectors docs
|
2009-10-03 21:48:16 -05:00 |
Joe Groff
|
d3c51baf91
|
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
|
9e61c433f1
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-03 11:48:56 -05:00 |
Joe Groff
|
426e560a6b
|
sprinkle some NaNs onto math.vectors.simd fuzz tests to improve flavor
|
2009-10-03 11:47:02 -05:00 |
Joe Groff
|
04bb03bb61
|
add intrinsics for v<=, v<, v=, v>, v>=, vunordered?
|
2009-10-03 11:29:34 -05:00 |
Slava Pestov
|
8a7e9740c9
|
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
|
38f413a8a6
|
add intrinsic for vnot/vbitnot
|
2009-10-02 20:04:28 -05:00 |
Doug Coleman
|
7d005111a4
|
i messed up a merge. weird
|
2009-10-02 16:05:00 -05:00 |
Doug Coleman
|
a070e9a3a9
|
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
|
67167cf9ea
|
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
|
f93dcfc792
|
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
|
5ff3eef0df
|
proofreading math.vectors docs
|
2009-10-02 15:18:42 -05:00 |
Joe Groff
|
0821d3f370
|
add notes to math.vectors docs about simd booleans
|
2009-10-02 15:11:06 -05:00 |
Joe Groff
|
aa3392e50f
|
implement vand, vor, vandn, and vxor as bitwise intrinsics for simd types
|
2009-10-02 14:17:01 -05:00 |
Keith Lazuka
|
405e5d015b
|
docs: change $subsection to $subsections
|
2009-10-02 12:15:48 -04:00 |
Joe Groff
|
8b7a813a08
|
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
|
01736e9bec
|
define simd equal? methods as v= vall?
|
2009-10-01 23:46:37 -05:00 |
Joe Groff
|
53b265f682
|
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
|
952498ef69
|
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
|
d5c4ec5357
|
add tests for v=, vany?, vall?, vnone?
|
2009-10-01 21:24:14 -05:00 |
Joe Groff
|
d14f150b58
|
%test-vector instruction for vany?, vall?, vnone?
|
2009-10-01 15:35:38 -05:00 |
Joe Groff
|
987ced4070
|
%compare-vector instruction (only does v= for now)
|
2009-10-01 14:31:37 -05:00 |
Joe Groff
|
0c8a4717f2
|
add software vall?, vany?, vnone? words
|
2009-10-01 13:21:10 -05:00 |
Slava Pestov
|
0db97d536f
|
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
|
5ac5a74cc6
|
write v? and vmask in terms of bitwise ops
|
2009-10-01 00:09:25 -05:00 |
Joe Groff
|
a93f8f66f9
|
Revert "add a %blend-vector intrinsic for v?"
This reverts commit 21e4b28b67.
|
2009-09-30 23:40:37 -05:00 |
Joe Groff
|
67cc45235d
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-30 23:04:04 -05:00 |
Joe Groff
|
7db7b63552
|
add a %blend-vector intrinsic for v?
|
2009-09-30 23:03:59 -05:00 |
Slava Pestov
|
2384b630b2
|
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
|
e56cd5cc12
|
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
|
e0f3b72c65
|
break math.vectors docs into subsections
|
2009-09-30 13:21:25 -05:00 |
Joe Groff
|
7e679e1683
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-30 00:07:45 -05:00 |
Joe Groff
|
55ab9c3002
|
docs for new math.vectors logical ops
|
2009-09-30 00:07:37 -05:00 |
Slava Pestov
|
d70b95e4b8
|
math.vectors.simd: fix bad comparison logic in unit tests
|
2009-09-29 23:46:21 -05:00 |
Slava Pestov
|
0a29e64287
|
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
|
eeb601dade
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-29 22:59:58 -05:00 |
Slava Pestov
|
80e84a357d
|
math.vectors.simd: add vbroadcast intrinsic, fix integer overflow issues
|
2009-09-29 22:58:20 -05:00 |
Joe Groff
|
1e1072f540
|
math.matrices.simd versions of frustum-matrix4 and rotation-matrix4
|
2009-09-29 22:54:11 -05:00 |
Joe Groff
|
5e16592596
|
add a "vmask" vector op to selectively zero out elements
|
2009-09-29 18:10:36 -05:00 |
Slava Pestov
|
f395d83379
|
math.vectors.simd: add fast intrinsic for 'nth', replace broadcast primitive with shuffles
|
2009-09-29 04:48:11 -05:00 |
Slava Pestov
|
e40a95c1e1
|
math.vectors.simd: add vshuffle intrinsic
|
2009-09-28 23:12:13 -05:00 |
Slava Pestov
|
a8ea929ad9
|
Work in progress
|
2009-09-28 17:31:34 -05:00 |
Slava Pestov
|
48d3f10c81
|
Fix some load errors in various places
|
2009-09-28 16:33:39 -05:00 |
Slava Pestov
|
4abfe06b51
|
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
|
9a06e6f424
|
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
|
790611666c
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-28 02:19:05 -05:00 |
Slava Pestov
|
b2ea3afd84
|
math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics
|
2009-09-28 02:17:46 -05:00 |
Joe Groff
|
a14855b98a
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-27 22:21:42 -05:00 |
Joe Groff
|
24de21eac8
|
take a shot at making other platform vocabs c-type-string-free
|
2009-09-27 19:25:34 -05:00 |
Slava Pestov
|
afc7a20ab8
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-27 17:18:16 -05:00 |
Slava Pestov
|
18cf8c37e1
|
math.vectors.simd: add *-cast words for converting between representations
|
2009-09-27 17:18:02 -05:00 |
Joe Groff
|
630e5ecc3b
|
update vocabs so a load-all on macosx works without parsing c-type strings
|
2009-09-27 15:11:21 -05:00 |
Joe Groff
|
c2145c933b
|
software implementations of vector logical ops (vand, vor, vxor, vnot, v</=/>, vunordered?, v?)
|
2009-09-27 13:19:22 -05:00 |
Slava Pestov
|
9d47f5d80d
|
math.vectors: remove special handling for negative shifts, now we just say the behavior of vlshift and vrshift with negative shifts is undefined
|
2009-09-26 02:26:31 -05:00 |
Slava Pestov
|
c38d523185
|
math.vectors: fix SIMD unit tests
|
2009-09-25 21:44:14 -05:00 |