[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/