[patch] Add SIMD operations for logical operations, optimize distributed get

Jules Bergmann jules at codesourcery.com
Tue Aug 1 12:19:28 UTC 2006


This patch:

  - Updates configure to support both SIMD loop fusion and SIMD
    builtin routines.  The intent is that as SIMD loop fusion
    performance improves, SIMD builtin routines will either decrease
    in number or go away altogether.

    The dispatch tag for SIMD loop fusion is 'Simd_loop_fusion_tag'.
    The dispatch tag for SIMD builtin routines is 'Simd_builtin_tag'
    The old tag 'Simd_tag' has gone away to avoid confusions.

    To configure the library to use SIMD loop fusion, use:

    	--enable-simd-loop-fusion

    To configure the library to use the generic SIMD builtin routines

    	--enable-builtin-simd-routines=generic

    Currently SIMD loop fuions is disabled by default (so that we can
    make a snapshot release), but the intent is to be enabled by
    default.

  - Adds generic SIMD routines for logic operations
    ({b,l},{and,or,xor,not}) and greater-than comparison (gt()).
    These routines work with Intel SSE when using GCC 3.4, and
    with PowerPC altivec when using GreenHills.

  - Extends test coverage for these logic operators.

  - Optimizes distributed get() to avoid a communication when running
    on a single processor, and when data is globally replicated.

  - Un-reverts the FFTW changes in vendor/GNUmakefile.inc.in

This patch is being tested as part of making a snapshot.  So far,
things look good:

/scratch/jules/release-snapshot/log-test-ParallelIntel64 (   unknown): 
149 / 150
/scratch/jules/release-snapshot/log-test-ParallelIntel64 (   unknown): 
149 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltin32 (   unknown): 
149 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltin32 (   unknown): 
149 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltinAMD64 ( 
unknown): 133 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltinAMD64 ( 
unknown): 148 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltinEM64T ( 
unknown): 149 / 150
/scratch/jules/release-snapshot/log-test-SerialBuiltinEM64T ( 
unknown): 149 / 150
/scratch/jules/release-snapshot/log-test-SerialIntel32 (   unknown): 149 
/ 150
/scratch/jules/release-snapshot/log-test-SerialIntel32 (   unknown): 149 
/ 150
/scratch/jules/release-snapshot/log-test-SerialIntel64 (   unknown): 149 
/ 150
/scratch/jules/release-snapshot/log-test-SerialIntel64 (   unknown): 149 
/ 150

(The 1 failure for the non-AMD64 cases is due to a test that needs to
be linked with -lvsip_csl.  The AMD64 failures are expected.)

				-- Jules

-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: simd-logic.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20060801/a331516b/attachment.ksh>


More information about the vsipl++ mailing list