Commit Graph

427 Commits (43b51ef2ebf970df7f6c1915253c1097c7f81346)

Author SHA1 Message Date
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
Joe Groff 5152c3b06d sse doesn't actually have an unsigned->unsigned pack instruction 2009-10-07 12:00:31 -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 444624e79f fix x86 %unpack-vector insns 2009-10-06 20:38:51 -05:00
Joe Groff 2edccca0bb oops...PACKUSDW is sse4 only 2009-10-06 20:09:50 -05:00
Joe Groff 425ea05529 %float>integer-vector should truncate 2009-10-06 13:57:54 -05:00
Joe Groff 84ecb1266d add insns for vector pack, unpack, integer>float, and float>integer 2009-10-05 22:34:14 -05:00
Slava Pestov 931107397c 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 dca9d3e535 add %merge-vector-head and %merge-vector-tail instructions to back vmerge 2009-10-03 21:48:53 -05:00
Joe Groff 335df20713 add intrinsics for v<=, v<, v=, v>, v>=, vunordered? 2009-10-03 11:29:34 -05:00
Joe Groff 14a97b6a05 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-03 10:02:26 -05:00
Joe Groff b1ec36a324 extend x86 %compare-vector to cover all comparison codes, sometimes stupidly for now 2009-10-02 23:19:56 -05:00
Slava Pestov dba965486c 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 e2e75c6b3a add intrinsic for vnot/vbitnot 2009-10-02 20:04:28 -05:00
Slava Pestov 9ac62dc476 cpu.ppc: remove useless comment 2009-10-02 03:31:53 -05:00
Slava Pestov aa0359f78d Merge branch 'reentrantvm' of git://github.com/phildawes/factor 2009-10-02 03:28:21 -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 7b13fa4283 fold test-vector/branch sequences into a test-vector-branch instruction 2009-10-01 19:53:30 -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 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
Slava Pestov de58c3c294 cpu.ppc: update for alien intrinsic changes 2009-09-30 18:22:59 -05:00
Phil Dawes 86593598d0 ppc asm to pass vm pointer: alien + compiled code 2009-09-30 21:23:53 +01:00
Slava Pestov 8e201ca4b7 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 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 e343b46479 cpu.ppc: update for %unary/binary-float-function change 2009-09-28 16:40:52 -05:00
Slava Pestov 49dba53760 cpu.x86: cleanups 2009-09-28 16:38:35 -05:00
Joe Groff 4e2e45b70d use PSHUFD for longlong-2 broadcast when dst != src to avoid a %copy 2009-09-28 12:04:08 -05:00
Joe Groff 3f90473f09 use MOVDDUP for double-2 broadcast to eliminate a %copy 2009-09-28 12:00:03 -05:00
Joe Groff 467c389948 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 f7d416a4e4 SSE integer gather and broadcast 2009-09-28 11:24:08 -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 dc1b6043dc cpu.x86: shifts didn't work if dst != src1; re-organize file a bit 2009-09-28 05:39:53 -05:00
Slava Pestov 542dd577d9 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 6f0d25a8b3 ppc asm to pass vm pointer: initial bootstrap 2009-09-28 07:48:37 +01:00
Slava Pestov daf8f0ebba cpu.x86: fix regression: fsqrt intrinsic wasn't used 2009-09-28 02:27:55 -05:00
Slava Pestov 10c5fe5933 math.vectors.simd: add hlshift, hrshift (128-bit shift), vbitandn intrinsics 2009-09-28 02:17:46 -05:00
Slava Pestov e8cfaccef0 compiler.cfg: nuke ##bignum>integer and ##integer>bignum since they were unused 2009-09-27 20:36:05 -05:00
Slava Pestov 6dd8e4657e Merge branch 'master' into more_aggressive_coalescing 2009-09-27 19:29:50 -05:00
Slava Pestov 6f2a4eba51 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 2efab6efad 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 a267100781 compiler.cfg.ssa.destruction: more aggressive coalescing work in progress 2009-09-27 17:17:26 -05:00
Joe Groff bf3eef9e2d Merge branch 'master' of git://factorcode.org/git/factor 2009-09-26 20:38:19 -05:00
Joe Groff e30819bcac move alien.inline, alien.cxx, alien.marshall to unmaintained; nuke alien.structs 2009-09-26 20:37:42 -05:00