[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[f-cpu] Scc (SIMD C compiler)
Do you know this link http://www.ece.purdue.edu/~hankd/SWAR/Scc.html ?
I think it could be any interest for you to add SIMD functionnality more
easily on your C-based source.
----- Original Message -----
From: "Yann Guidon" <whygee@f-cpu.org>
To: <f-cpu@seul.org>
Sent: Saturday, April 19, 2003 7:07 AM
Subject: Re: [f-cpu] Yet Another Upload
> hi !
>
> Michael Riepe wrote:
>
> >I'm going to upload fcpu-mr-20030418.tar.gz to
> >http://f-cpu.seul.org/~f-cpu/new/ tonight.
> >
> >Highlights:
> >
> > * EU_AFU is included.
> >
> >
> hmmm i better look at it :-)
>
> > * EU_ASU now supports twenty-four (24) operations, not counting
> > SIMD, chunk sizes or immediate instructions:
> >
> > add a + b modulo 2**n
> > addc a + b with carry-out
> > avg (a + b) / 2 unsigned
> > avgs (a + b) / 2 signed
> > addus saturate(a + b) unsigned
> > addss saturate(a + b) signed
> >
> > add1 a + b + 1 modulo 2**n
> > addc1 a + b + 1 with carry-out
> > avg1 (a + b + 1) / 2 unsigned
> > avgs1 (a + b + 1) / 2 signed
> > addus1 saturate(a + b + 1) unsigned
> > addss1 saturate(a + b + 1) signed
> >
> > sub a - b modulo 2**n
> > subb a - b with borrow-out
> > diff (a - b) / 2 unsigned
> > diffs (a - b) / 2 signed
> > subus saturate(a - b) unsigned
> > subss saturate(a - b) signed
> >
> > sub1 a - b - 1 modulo 2**n
> > subb1 a - b - 1 with borrow-out
> > diff1 (a - b - 1) / 2 unsigned
> > diffs1 (a - b - 1) / 2 signed
> > subus1 saturate(a - b - 1) unsigned
> > subss1 saturate(a - b - 1) signed
> >
> >
> it is getting really impressing !
>
> > Carry and borrow outputs use the numeric values 0 and 1.
> > I'm currently considering additional `widening' addw/subw
> > instructions that will provide a `correct' value in the
> > upper half, as if the operands had been sign-extended and
> > added/subtracted in a wider mode.
> >
> > * EU_SHL will now scale up to 2048 bits, and I finally implemented
> > the widen instruction. Shift, rotate, bitrev, byterev and widen
> > operate on individual chunks while other bytewise instructions
> > (mix, expand, permute, sdup and cshift) may transfer data from
> > one chunk to another. Word width is limited to 2048 bits because
> > permute/sdup can only address up to 256 8-bit chunks internally.
> > Other operations will work with wider words, too.
> >
> > * package Generic_Adder now includes the new carry-select adder
> > I'm using everywhere. The carry-increment adder should not
> > be used any longer.
> >
> >As usual, packages and units have been tested with the included
> >testbenches.
> >
> >
> cool.
>
> i should however reinstall NCSIM but i am very very busy now and in the
> following months.
>
> >Synthesis reports welcome. BTW: You may also try to synthesize 128-bit
> >or 256-bit versions of individual units (except IMul64 which doesn't
> >auto-scale yet).
> >
> >
> I am more worried about the correct work of the general scripts and what
> they can do now.
> Tests must also be redone regularly to check that all the sources work
> correctly with all the known tools. If someone wants to do a regression
> server .....
> I seem to remember that a lot of important things were missing in the
> main script.
> But keeping it up to date made me forget what was missing ....
>
> Hmmmm now that Michael has added yet more functions, the C version of
> the unit
> must be rewritten : cool ! ....
>
> YG (way behind)
>
> *************************************************************
> To unsubscribe, send an e-mail to majordomo@seul.org with
> unsubscribe f-cpu in the body. http://f-cpu.seul.org/
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu in the body. http://f-cpu.seul.org/