Summary: | improve fbmmx | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Nicholas Miell <nmiell> | ||||||
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> | ||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||
Severity: | normal | ||||||||
Priority: | high | CC: | ajax, mharris, soren.sandmann | ||||||
Version: | git | ||||||||
Hardware: | x86 (IA32) | ||||||||
OS: | All | ||||||||
Whiteboard: | |||||||||
i915 platform: | i915 features: | ||||||||
Attachments: |
|
Description
Nicholas Miell
2004-08-13 00:07:13 UTC
Created attachment 624 [details] [review] patch Just skimming over the patch it looks very good to me. Two comments though: - GCC 3.3 is unusably buggy wrt. to intrinsics. GCC 3.4 is buggy, but you can workaround. We need to make sure the code continues to work with GCC 3.4. - This is not material for the upcoming release, but we should looks at it for the next one. (In reply to comment #2) > - GCC 3.3 is unusably buggy wrt. to intrinsics. GCC 3.4 is buggy, but you > can workaround. We need to make sure the code continues to work > with GCC 3.4. It's inclusion is still keyed off of the use of GCC 3.4, and will remain that way until somebody adds support for other compilers. I only built and tested it with gcc 3.4 (and am using it right now, without any problem). > 6. The shift function is replaced by open-coded instances of _mm_srli_pi16 and
> _mm_slli_pi16.
I'd really like to keep the shift function. To me,
shift (blah, -48)
is much clearer than _mm_slli_si64 (blah, 48), and since the function is inlined
and optimized, gcc doesn't generate any worse code for it when the argument is a
compile time constant.
Other than that, the patch looks fine to me.
(In reply to comment #4) > I'd really like to keep the shift function. To me, > > shift (blah, -48) > > is much clearer than _mm_slli_si64 (blah, 48), and since the function is > inlined and optimized, gcc doesn't generate any worse code for it when the > argument is a compile time constant. Eh, I found "shift" with no indication of direction other than a sign confusing, but I'm not particularly attached to it. I'll change it and re-diff soon. Created attachment 1591 [details] [review] new patch This also fixes the non-SSE expand_alpha, which I messed up the first time around. Committed, except that I put #include <xmmintrin.h> inside an #ifdef USE_SSE, because xmmintrin.h contains an #error that triggers if -msse is not used Mon Jan 3 12:45:10 2005 Søren Sandmann <sandmann@redhat.com> Clean-ups and support for AMD64. Bug 1067. Patch by Nicholas Miell (nmiell@comcast.net) * programs/Xserver/fb/Imakefile: Add support for AMD64 * programs/Xserver/fb/{fbmmx.[ch],fbpict.c}: Many cleanups using <mmintrin.h> instead of __builin_ia32_*, and intrinsics instead of inline assembly. Also unconditionally use pshufw on AMD64. * programs/Xserver/fb/*: s/USE_GCC34_MMX/USE_MMX/g |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.