[mythtv] OSD issue?
Andrew Mahone
andrewmahone at eml.cc
Fri Feb 13 19:31:13 EST 2004
On Fri, 13 Feb 2004 16:23:19 -0500 (EST), "Daniel Thor Kristjansson"
<danielk at cat.nyu.edu> said:
> I didn't see the original message here, but division in SSE isn't so
> bad if you use te Newton-Rhapston method to generate an inverse and
> then multiply. Here's a bit of code from my vector library you are free
> to use. The "+=", "-" and "*" are implemented like you might expect.
> This used to be raw assembly before gcc 3.3.2 so it shouldn't be hard
> to go back if need be. These are all floating point obviously, but the
> quick conversion back and forth are a single cycle things whose latency
> can be hidden. (This is written out with the explicit assignment to t0
> and the like to fool gcc into generating good SIMD code.)
Isaac (and probably many others) don't have SSE on their frontend box,
which is why I was looking for an MMX way to do it. I could use SSE on
mine, so I may still write an SSE version as well. A big problem here is
that data are initially packed bytes. I'll already have to convert to
words for some MMX math, but SSE would mean two more conversions (word-
>dword and then dword->float). I'm not sure this is a gain vs. writing
the packed words to cached memory, running them through a small LUT
operation, and pulling them back into MMX registers to finish the job.
I'm also guessing the gcc 3.3.2 vector stuff isn't going to get into CVS,
because that was how I originally wrote denoise3d, and I was asked to
redo it with asm. Not many people are using this version of gcc yet.
--
Andrew Mahone
andrewmahone AT eml DOT cc
--
http://www.fastmail.fm - Choose from over 50 domains or use your own
More information about the mythtv-dev
mailing list