Björn Lindqvist
|
6c6f85428c
|
compiler.cfg.intrinsics.simd: refactoring to use assocs instead of case-s for lookups + tests
|
2015-04-29 09:31:56 -07:00 |
John Benediktsson
|
c65877104e
|
compiler: cleanup usings.
|
2014-12-13 16:10:21 -08:00 |
Björn Lindqvist
|
c3f9c0a9a3
|
compiler.cfg.intrinsics.simd: the ulonglong case is correct, it just shouldn't convert the value to a fixnum
|
2014-06-07 17:00:52 +02:00 |
Björn Lindqvist
|
644dac1fc0
|
compiler.cfg.intrinsics.simd: remove a case in sign-bit-mask that is probably unused
|
2014-06-07 14:39:19 +02:00 |
Joe Groff
|
943596575a
|
use radix literals
|
2011-11-23 19:03:40 -08:00 |
Joe Groff
|
d79b462f75
|
compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]
Combined with a fast bit-count this will let us rice byte-counting.
|
2011-11-13 16:10:20 -08:00 |
Doug Coleman
|
6cca0ea468
|
compiler.cfg: Rename <##foo> to ##foo, in the low-level IR
|
2011-11-11 19:48:38 -08:00 |
Doug Coleman
|
eb2a0c611b
|
compiler.cfg: Change low-level IR constructors from ##foo to <##foo>
|
2011-11-06 23:02:46 -08:00 |
Joe Groff
|
7fe04fa8ee
|
compiler.cfg.intrinsics.simd: intrinsic support for double-2>float-4 conversion
|
2010-06-01 00:34:50 -07:00 |
Joe Groff
|
67ea40ade3
|
compiler.cfg.intrinsics.simd: use ^^select-vector for simd constant nth when available
|
2010-05-16 00:50:20 -07:00 |
Joe Groff
|
0c27f30475
|
compiler.cfg.intrinsics.simd: use new ##gather-int-vector insns to construct int vectors when available
|
2010-05-15 23:59:27 -07:00 |
Joe Groff
|
465a1673eb
|
compiler.cfg.intrinsics.simd: mod shuffle indices for shuffle-2-vectors-imm intrinsic so they wrap like a real instruction would
|
2010-05-14 01:20:05 -07:00 |
Joe Groff
|
9f9e145819
|
math.vectors.simd.intrinsics: (simd-vshuffle2-elements) intrinsic that creates a vector by selecting elements from two input vectors. use ##shuffle-vector-halves-imm to implement for double-2s with SSE
|
2010-05-14 01:16:29 -07:00 |
Slava Pestov
|
913b95192e
|
compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm
|
2010-05-03 17:34:06 -04:00 |
Slava Pestov
|
5d3a7a7362
|
Untagged fixnums work in progress
|
2010-05-03 17:34:02 -04:00 |
Slava Pestov
|
c5c94ef1f9
|
compiler.cfg.intrinsics.simd: ignore dummy assert-positive word
|
2010-01-31 18:19:14 +13:00 |
Joe Groff
|
3e40a36c50
|
fix simd tests
|
2009-12-05 17:17:16 -08:00 |
Joe Groff
|
104c29aabc
|
simd intrinsic implementation for v*high, v*hs+, vavg, and vsad
|
2009-12-05 14:52:18 -08:00 |
Joe Groff
|
63b89c65f9
|
don't use intrinsics for simd vector element operations when the component size doesn't fit in a fixnum
|
2009-12-03 12:46:56 -08:00 |
Joe Groff
|
66d0cafa94
|
fix buggy simd intrinsics
|
2009-11-26 13:28:40 -08:00 |
Joe Groff
|
50f7dff422
|
change name of 'unsign-rep' to more sensible 'signed-rep'
|
2009-11-24 22:44:12 -08:00 |
Joe Groff
|
c98eb84943
|
make math.vectors.simd tests pass again
|
2009-11-24 18:30:12 -08:00 |
Joe Groff
|
65d8060075
|
fix simd intrinsic compilation
|
2009-11-24 11:37:28 -08:00 |
Joe Groff
|
152b0d2df5
|
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
|
a3e4ecfc7d
|
enable simd intrinsics and fix first-pass compiler errors
|
2009-11-18 20:32:05 -08:00 |
Joe Groff
|
d56afe9c3d
|
compilation fixes
|
2009-11-14 23:43:22 -06:00 |
Joe Groff
|
8a8699ac98
|
backend fixups
|
2009-11-14 20:59:03 -06:00 |
Joe Groff
|
eac9bacf40
|
backend for choosing available SIMD intrinsic implementations
|
2009-11-10 23:35:46 -06:00 |
Joe Groff
|
4d54f27cd1
|
more intrinsic madness
|
2009-11-05 09:52:57 -06:00 |
Joe Groff
|
bd77633d5b
|
new intrinsic generators, pt1
|
2009-11-03 21:38:45 -06:00 |
Joe Groff
|
e36eb438fa
|
move all simd intrinsics to compiler.cfg.intrinsics.simd, and only load it when math.vectors.simd is loaded
|
2009-11-02 15:17:34 -06:00 |
Joe Groff
|
b858860a67
|
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 |
Joe Groff
|
6e1bffb1c5
|
update existing code to use :> ( ) when possible
|
2009-10-28 16:11:33 -05:00 |
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
|
448ef2f1d5
|
fix unsigned vector unpack
|
2009-10-16 14:25:33 -05:00 |
Joe Groff
|
97ab9dc4ab
|
only emit ##alien-vector/##set-alien-vector insns if the rep is available
|
2009-10-10 12:53:10 -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
|
dd691a61e8
|
break vector compare intrinsics into %compare, %or, and %not instructions that map directly to cpu instructions
|
2009-10-07 15:27:03 -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 |
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 |
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 |
Slava Pestov
|
80e84a357d
|
math.vectors.simd: add vbroadcast intrinsic, fix integer overflow issues
|
2009-09-29 22:58:20 -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
|
b2ea3afd84
|
math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics
|
2009-09-28 02:17:46 -05:00 |