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
|
4d5f727a63
|
sse doesn't actually have an unsigned->unsigned pack instruction
|
2009-10-07 12:00:31 -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
|
879fe9a665
|
fix x86 %unpack-vector insns
|
2009-10-06 20:38:51 -05:00 |
Joe Groff
|
da4cf61014
|
oops...PACKUSDW is sse4 only
|
2009-10-06 20:09:50 -05:00 |
Joe Groff
|
882f40d88e
|
%float>integer-vector should truncate
|
2009-10-06 13:57:54 -05:00 |
Joe Groff
|
529c444e32
|
add insns for vector pack, unpack, integer>float, and float>integer
|
2009-10-05 22:34:14 -05:00 |
Slava Pestov
|
b4e36608da
|
compiler.cfg: remove _gc instruction, it doesn't need to exist, and change GC checks to ensure that the right amount of space is available instead of blindly checking for 1Kb
|
2009-10-05 05:27:49 -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
|
04bb03bb61
|
add intrinsics for v<=, v<, v=, v>, v>=, vunordered?
|
2009-10-03 11:29:34 -05:00 |
Joe Groff
|
74f15cfe8c
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-10-03 10:02:26 -05:00 |
Joe Groff
|
4e024cbbc2
|
extend x86 %compare-vector to cover all comparison codes, sometimes stupidly for now
|
2009-10-02 23:19:56 -05:00 |
Slava Pestov
|
5fc3ad92f6
|
cpu.arm.assembler: dust it off, update to work with contemporary Factor, and clean it up a bit
|
2009-10-02 20:18:34 -05:00 |
Joe Groff
|
38f413a8a6
|
add intrinsic for vnot/vbitnot
|
2009-10-02 20:04:28 -05:00 |
Slava Pestov
|
df9b0f695f
|
cpu.ppc: remove useless comment
|
2009-10-02 03:31:53 -05:00 |
Slava Pestov
|
2c136d6536
|
Merge branch 'reentrantvm' of git://github.com/phildawes/factor
|
2009-10-02 03:28:21 -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
|
f9695951a0
|
fold test-vector/branch sequences into a test-vector-branch instruction
|
2009-10-01 19:53:30 -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
|
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 |
Slava Pestov
|
a7dd4ad5cc
|
cpu.ppc: update for alien intrinsic changes
|
2009-09-30 18:22:59 -05:00 |
Phil Dawes
|
bc70311e69
|
ppc asm to pass vm pointer: alien + compiled code
|
2009-09-30 21:23:53 +01:00 |
Slava Pestov
|
cdc7b7e2c7
|
Various minor compiler tweaks: Combine address calculation with dereferencing in alien accessors; convert SIMD XOR of a vector with itself into an XOR of the destination with itself; convert SIMD unbox of zero vector into XOR of the destination with itself; fix SIMD indexing on x86-64
|
2009-09-30 05:00: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
|
e1a9b25562
|
cpu.ppc: update for %unary/binary-float-function change
|
2009-09-28 16:40:52 -05:00 |
Slava Pestov
|
4202211293
|
cpu.x86: cleanups
|
2009-09-28 16:38:35 -05:00 |
Joe Groff
|
01f526ff28
|
use PSHUFD for longlong-2 broadcast when dst != src to avoid a %copy
|
2009-09-28 12:04:08 -05:00 |
Joe Groff
|
7520da41cc
|
use MOVDDUP for double-2 broadcast to eliminate a %copy
|
2009-09-28 12:00:03 -05:00 |
Joe Groff
|
2e8bb98781
|
cpu.x86.assembler: make SSE shuffle instructions accept an array of indexes so they're easier to use
|
2009-09-28 11:45:45 -05:00 |
Joe Groff
|
965730efbe
|
SSE integer gather and broadcast
|
2009-09-28 11:24:08 -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
|
08a2eb74f4
|
cpu.x86: shifts didn't work if dst != src1; re-organize file a bit
|
2009-09-28 05:39:53 -05:00 |
Slava Pestov
|
f73bb2d068
|
cpu.x86.32: fix %unary/binary-float-function on Windows; need to look up symbols in libm and not VM binary
|
2009-09-28 04:51:53 -05:00 |
Phil Dawes
|
6fa0a93498
|
ppc asm to pass vm pointer: initial bootstrap
|
2009-09-28 07:48:37 +01:00 |
Slava Pestov
|
7e4b9b6377
|
cpu.x86: fix regression: fsqrt intrinsic wasn't used
|
2009-09-28 02:27:55 -05:00 |
Slava Pestov
|
b2ea3afd84
|
math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics
|
2009-09-28 02:17:46 -05:00 |
Slava Pestov
|
59fbe85c9b
|
compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused
|
2009-09-27 20:36:05 -05:00 |
Slava Pestov
|
f757b454cc
|
Merge branch 'master' into more_aggressive_coalescing
|
2009-09-27 19:29:50 -05:00 |
Slava Pestov
|
705b4ab5c3
|
compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code
|
2009-09-27 19:28:20 -05:00 |
Slava Pestov
|
91e63c0c6f
|
cpu.x86.32: implement %unary-float-function and %binary-float-function; speeds up partial-sums and struct-arrays benchmarks
|
2009-09-27 18:06:30 -05:00 |
Slava Pestov
|
1e841e5086
|
compiler.cfg.ssa.destruction: more aggressive coalescing work in progress
|
2009-09-27 17:17:26 -05:00 |
Joe Groff
|
dce02fcdfb
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-09-26 20:38:19 -05:00 |