From 248066c710c41c82af31dbfccaa303672bffa7be Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sun, 13 Nov 2011 15:45:03 -0800 Subject: [PATCH] code beautification --- .../cfg/intrinsics/simd/simd-tests.factor | 24 ++--- basis/cpu/x86/sse/sse.factor | 8 +- basis/math/bitwise/bitwise.factor | 26 +++--- .../vectors/simd/intrinsics/intrinsics.factor | 5 -- basis/math/vectors/simd/simd.factor | 90 +++++++++---------- 5 files changed, 77 insertions(+), 76 deletions(-) diff --git a/basis/compiler/cfg/intrinsics/simd/simd-tests.factor b/basis/compiler/cfg/intrinsics/simd/simd-tests.factor index ff9ecd6112..b7e4a5c714 100644 --- a/basis/compiler/cfg/intrinsics/simd/simd-tests.factor +++ b/basis/compiler/cfg/intrinsics/simd/simd-tests.factor @@ -97,21 +97,21 @@ CONSTANT: all-reps TUPLE: scalar-cpu ; TUPLE: simple-ops-cpu ; -M: simple-ops-cpu %zero-vector-reps all-reps ; -M: simple-ops-cpu %fill-vector-reps all-reps ; -M: simple-ops-cpu %add-vector-reps all-reps ; -M: simple-ops-cpu %sub-vector-reps all-reps ; -M: simple-ops-cpu %mul-vector-reps all-reps ; -M: simple-ops-cpu %div-vector-reps all-reps ; -M: simple-ops-cpu %andn-vector-reps all-reps ; -M: simple-ops-cpu %and-vector-reps all-reps ; -M: simple-ops-cpu %or-vector-reps all-reps ; -M: simple-ops-cpu %xor-vector-reps all-reps ; +M: simple-ops-cpu %zero-vector-reps all-reps ; +M: simple-ops-cpu %fill-vector-reps all-reps ; +M: simple-ops-cpu %add-vector-reps all-reps ; +M: simple-ops-cpu %sub-vector-reps all-reps ; +M: simple-ops-cpu %mul-vector-reps all-reps ; +M: simple-ops-cpu %div-vector-reps all-reps ; +M: simple-ops-cpu %andn-vector-reps all-reps ; +M: simple-ops-cpu %and-vector-reps all-reps ; +M: simple-ops-cpu %or-vector-reps all-reps ; +M: simple-ops-cpu %xor-vector-reps all-reps ; M: simple-ops-cpu %merge-vector-reps all-reps ; -M: simple-ops-cpu %sqrt-vector-reps all-reps ; +M: simple-ops-cpu %sqrt-vector-reps all-reps ; M: simple-ops-cpu %move-vector-mask-reps all-reps ; M: simple-ops-cpu %test-vector-reps all-reps ; -M: simple-ops-cpu %signed-pack-vector-reps all-reps ; +M: simple-ops-cpu %signed-pack-vector-reps all-reps ; M: simple-ops-cpu %unsigned-pack-vector-reps all-reps ; M: simple-ops-cpu %gather-vector-2-reps { longlong-2-rep ulonglong-2-rep double-2-rep } ; M: simple-ops-cpu %gather-vector-4-reps { int-4-rep uint-4-rep float-4-rep } ; diff --git a/basis/cpu/x86/sse/sse.factor b/basis/cpu/x86/sse/sse.factor index 63332145ab..0f2ab0573f 100644 --- a/basis/cpu/x86/sse/sse.factor +++ b/basis/cpu/x86/sse/sse.factor @@ -476,7 +476,7 @@ M: x86 %compare-vector-ccs { vcc-notall [ dst mask CMP dst temp \ CMOVNE (%boolean) ] } } case ; -: %move-vector-mask* ( dst src rep -- mask ) +: (%move-vector-mask) ( dst src rep -- mask ) { { double-2-rep [ MOVMSKPS HEX: f ] } { float-4-rep [ MOVMSKPS HEX: f ] } @@ -484,7 +484,7 @@ M: x86 %compare-vector-ccs } case ; M: x86 %move-vector-mask ( dst src rep -- ) - %move-vector-mask* drop ; + (%move-vector-mask) drop ; M: x86 %move-vector-mask-reps { @@ -493,7 +493,7 @@ M: x86 %move-vector-mask-reps } available-reps ; M:: x86 %test-vector ( dst src temp rep vcc -- ) - dst src rep %move-vector-mask* :> mask + dst src rep (%move-vector-mask) :> mask dst temp mask vcc %test-vector-mask ; :: %test-vector-mask-branch ( label temp mask vcc -- ) @@ -505,7 +505,7 @@ M:: x86 %test-vector ( dst src temp rep vcc -- ) } case ; M:: x86 %test-vector-branch ( label src temp rep vcc -- ) - temp src rep %move-vector-mask* :> mask + temp src rep (%move-vector-mask) :> mask label temp mask vcc %test-vector-mask-branch ; M: x86 %test-vector-reps diff --git a/basis/math/bitwise/bitwise.factor b/basis/math/bitwise/bitwise.factor index 4dc99e47ec..ebc8b9f8f7 100644 --- a/basis/math/bitwise/bitwise.factor +++ b/basis/math/bitwise/bitwise.factor @@ -88,16 +88,22 @@ GENERIC: (bit-count) ( x -- n ) : fixnum-bit-count ( x -- n ) { fixnum } declare - [ byte-bit-count ] keep - [ -8 shift byte-bit-count + ] keep - [ -16 shift byte-bit-count + ] keep - [ -24 shift byte-bit-count + ] keep - cell 8 = [ - [ -32 shift byte-bit-count + ] keep - [ -40 shift byte-bit-count + ] keep - [ -48 shift byte-bit-count + ] keep - -56 shift byte-bit-count + >fixnum - ] [ drop ] if ; + { + [ byte-bit-count ] + [ -8 shift byte-bit-count + ] + [ -16 shift byte-bit-count + ] + [ -24 shift byte-bit-count + ] + [ + cell 8 = [ + { + [ -32 shift byte-bit-count + ] + [ -40 shift byte-bit-count + ] + [ -48 shift byte-bit-count + ] + [ -56 shift byte-bit-count + ] + } cleave >fixnum + ] [ drop ] if + ] + } cleave ; M: fixnum (bit-count) fixnum-bit-count { fixnum } declare ; inline diff --git a/basis/math/vectors/simd/intrinsics/intrinsics.factor b/basis/math/vectors/simd/intrinsics/intrinsics.factor index 28bd2f8f83..48bde1a83e 100644 --- a/basis/math/vectors/simd/intrinsics/intrinsics.factor +++ b/basis/math/vectors/simd/intrinsics/intrinsics.factor @@ -115,7 +115,6 @@ SYNTAX: SIMD-INTRINSIC:: [ [ >rep-array ] [ rep-length ] bi ] dip unrolled-map-unsafe underlying>> ; inline : components-2map ( a b rep quot -- c ) [ [ 2>rep-array ] [ rep-length ] bi ] dip unrolled-2map-unsafe underlying>> ; inline -! XXX : components-reduce ( a rep quot -- x ) [ >rep-array [ ] ] dip map-reduce ; inline @@ -125,7 +124,6 @@ SYNTAX: SIMD-INTRINSIC:: : bitwise-components-2map ( a b rep quot -- c ) [ >bitwise-vector-rep [ 2>rep-array ] [ rep-length ] bi ] dip unrolled-2map-unsafe underlying>> ; inline -! XXX : bitwise-components-reduce ( a rep quot -- x ) [ >bitwise-vector-rep >rep-array [ ] ] dip map-reduce ; inline : bitwise-components-reduce* ( a rep identity quot -- x ) @@ -282,15 +280,12 @@ SIMD-INTRINSIC: (simd-vpack-unsigned) ( a b rep -- c ) [ [ 2>rep-array cord-append ] [ rep-length 2 * ] bi ] [ narrow-vector-rep >uint-vector-rep [ ] [ rep-component-type ] bi ] bi '[ _ c:c-type-clamp ] swap unrolled-map-as-unsafe underlying>> ; -! XXX SIMD-INTRINSIC: (simd-vunpack-head) ( a rep -- c ) [ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi [ head-slice ] dip call( a' -- c' ) underlying>> ; -! XXX SIMD-INTRINSIC: (simd-vunpack-tail) ( a rep -- c ) [ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi [ tail-slice ] dip call( a' -- c' ) underlying>> ; -! XXX SIMD-INTRINSIC: (simd-with) ( n rep -- v ) [ rep-length swap '[ _ ] ] [ ] bi replicate-as underlying>> ; diff --git a/basis/math/vectors/simd/simd.factor b/basis/math/vectors/simd/simd.factor index 432cca0718..1714cfb0c8 100644 --- a/basis/math/vectors/simd/simd.factor +++ b/basis/math/vectors/simd/simd.factor @@ -147,101 +147,101 @@ M: simd-128 equal? ! SIMD primitive operations M: simd-128 v+ - dup simd-rep [ (simd-v+) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v+) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v- - dup simd-rep [ (simd-v-) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v-) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vneg - dup simd-rep [ (simd-vneg) ] [ call-next-method ] v->v-op ; inline + dup simd-rep [ (simd-vneg) ] [ call-next-method ] v->v-op ; inline M: simd-128 v+- - dup simd-rep [ (simd-v+-) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v+-) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vs+ - dup simd-rep [ (simd-vs+) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vs+) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vs- - dup simd-rep [ (simd-vs-) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vs-) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vs* - dup simd-rep [ (simd-vs*) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vs*) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v* - dup simd-rep [ (simd-v*) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v*) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v*high - dup simd-rep [ (simd-v*high) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v*high) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v/ - dup simd-rep [ (simd-v/) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v/) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vavg - dup simd-rep [ (simd-vavg) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vavg) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vmin - dup simd-rep [ (simd-vmin) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vmin) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vmax - dup simd-rep [ (simd-vmax) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vmax) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v. - dup simd-rep [ (simd-v.) ] [ call-next-method ] vv->x-op ; inline + dup simd-rep [ (simd-v.) ] [ call-next-method ] vv->x-op ; inline M: simd-128 vsad - dup simd-rep [ (simd-vsad) ] [ call-next-method ] vv->x-op ; inline + dup simd-rep [ (simd-vsad) ] [ call-next-method ] vv->x-op ; inline M: simd-128 vsqrt - dup simd-rep [ (simd-vsqrt) ] [ call-next-method ] v->v-op ; inline + dup simd-rep [ (simd-vsqrt) ] [ call-next-method ] v->v-op ; inline M: simd-128 sum - dup simd-rep [ (simd-sum) ] [ call-next-method ] v->x-op ; inline + dup simd-rep [ (simd-sum) ] [ call-next-method ] v->x-op ; inline M: simd-128 vabs - dup simd-rep [ (simd-vabs) ] [ call-next-method ] v->v-op ; inline + dup simd-rep [ (simd-vabs) ] [ call-next-method ] v->v-op ; inline M: simd-128 vbitand - dup simd-rep [ (simd-vbitand) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vbitand) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vbitandn - dup simd-rep [ (simd-vbitandn) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vbitandn) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vbitor - dup simd-rep [ (simd-vbitor) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vbitor) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vbitxor - dup simd-rep [ (simd-vbitxor) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vbitxor) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vbitnot - dup simd-rep [ (simd-vbitnot) ] [ call-next-method ] v->v-op ; inline + dup simd-rep [ (simd-vbitnot) ] [ call-next-method ] v->v-op ; inline M: simd-128 vand - dup simd-rep [ (simd-vand) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vand) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vandn - dup simd-rep [ (simd-vandn) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vandn) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vor - dup simd-rep [ (simd-vor) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vor) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vxor - dup simd-rep [ (simd-vxor) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vxor) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vnot - dup simd-rep [ (simd-vnot) ] [ call-next-method ] v->v-op ; inline + dup simd-rep [ (simd-vnot) ] [ call-next-method ] v->v-op ; inline M: simd-128 vlshift - over simd-rep [ (simd-vlshift) ] [ call-next-method ] vn->v-op ; inline + over simd-rep [ (simd-vlshift) ] [ call-next-method ] vn->v-op ; inline M: simd-128 vrshift - over simd-rep [ (simd-vrshift) ] [ call-next-method ] vn->v-op ; inline + over simd-rep [ (simd-vrshift) ] [ call-next-method ] vn->v-op ; inline M: simd-128 hlshift - over simd-rep [ (simd-hlshift) ] [ call-next-method ] vn->v-op ; inline + over simd-rep [ (simd-hlshift) ] [ call-next-method ] vn->v-op ; inline M: simd-128 hrshift - over simd-rep [ (simd-hrshift) ] [ call-next-method ] vn->v-op ; inline + over simd-rep [ (simd-hrshift) ] [ call-next-method ] vn->v-op ; inline M: simd-128 vshuffle-elements over simd-rep [ (simd-vshuffle-elements) ] [ call-next-method ] vx->v-op ; inline M: simd-128 vshuffle2-elements over simd-rep [ (simd-vshuffle2-elements) ] [ call-next-method ] vvx->v-op ; inline M: simd-128 vshuffle-bytes - dup simd-rep [ (simd-vshuffle-bytes) ] [ call-next-method ] vv'->v-op ; inline + dup simd-rep [ (simd-vshuffle-bytes) ] [ call-next-method ] vv'->v-op ; inline M: simd-128 (vmerge-head) - dup simd-rep [ (simd-vmerge-head) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vmerge-head) ] [ call-next-method ] vv->v-op ; inline M: simd-128 (vmerge-tail) - dup simd-rep [ (simd-vmerge-tail) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vmerge-tail) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v<= - dup simd-rep [ (simd-v<=) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v<=) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v< - dup simd-rep [ (simd-v<) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v<) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v= - dup simd-rep [ (simd-v=) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v=) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v> - dup simd-rep [ (simd-v>) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v>) ] [ call-next-method ] vv->v-op ; inline M: simd-128 v>= - dup simd-rep [ (simd-v>=) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-v>=) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vunordered? - dup simd-rep [ (simd-vunordered?) ] [ call-next-method ] vv->v-op ; inline + dup simd-rep [ (simd-vunordered?) ] [ call-next-method ] vv->v-op ; inline M: simd-128 vany? - dup simd-rep [ (simd-vany?) ] [ call-next-method ] v->x-op ; inline + dup simd-rep [ (simd-vany?) ] [ call-next-method ] v->x-op ; inline M: simd-128 vall? - dup simd-rep [ (simd-vall?) ] [ call-next-method ] v->x-op ; inline + dup simd-rep [ (simd-vall?) ] [ call-next-method ] v->x-op ; inline +M: simd-128 vnone? + dup simd-rep [ (simd-vnone?) ] [ call-next-method ] v->x-op ; inline M: simd-128 vcount dup simd-rep [ [ (simd-vgetmask) assert-positive ] [ call-next-method ] v->x-op ] [ mask>count ] bi ; inline -M: simd-128 vnone? - dup simd-rep [ (simd-vnone?) ] [ call-next-method ] v->x-op ; inline ! SIMD high-level specializations