code beautification

db4
Joe Groff 2011-11-13 15:45:03 -08:00
parent a10fa68218
commit 248066c710
5 changed files with 77 additions and 76 deletions

View File

@ -97,21 +97,21 @@ CONSTANT: all-reps
TUPLE: scalar-cpu ; TUPLE: scalar-cpu ;
TUPLE: simple-ops-cpu ; TUPLE: simple-ops-cpu ;
M: simple-ops-cpu %zero-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 %fill-vector-reps all-reps ;
M: simple-ops-cpu %add-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 %sub-vector-reps all-reps ;
M: simple-ops-cpu %mul-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 %div-vector-reps all-reps ;
M: simple-ops-cpu %andn-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 %and-vector-reps all-reps ;
M: simple-ops-cpu %or-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 %xor-vector-reps all-reps ;
M: simple-ops-cpu %merge-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 %move-vector-mask-reps all-reps ;
M: simple-ops-cpu %test-vector-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 %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-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 } ; M: simple-ops-cpu %gather-vector-4-reps { int-4-rep uint-4-rep float-4-rep } ;

View File

@ -476,7 +476,7 @@ M: x86 %compare-vector-ccs
{ vcc-notall [ dst mask CMP dst temp \ CMOVNE (%boolean) ] } { vcc-notall [ dst mask CMP dst temp \ CMOVNE (%boolean) ] }
} case ; } case ;
: %move-vector-mask* ( dst src rep -- mask ) : (%move-vector-mask) ( dst src rep -- mask )
{ {
{ double-2-rep [ MOVMSKPS HEX: f ] } { double-2-rep [ MOVMSKPS HEX: f ] }
{ float-4-rep [ MOVMSKPS HEX: f ] } { float-4-rep [ MOVMSKPS HEX: f ] }
@ -484,7 +484,7 @@ M: x86 %compare-vector-ccs
} case ; } case ;
M: x86 %move-vector-mask ( dst src rep -- ) M: x86 %move-vector-mask ( dst src rep -- )
%move-vector-mask* drop ; (%move-vector-mask) drop ;
M: x86 %move-vector-mask-reps M: x86 %move-vector-mask-reps
{ {
@ -493,7 +493,7 @@ M: x86 %move-vector-mask-reps
} available-reps ; } available-reps ;
M:: x86 %test-vector ( dst src temp rep vcc -- ) 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 ; dst temp mask vcc %test-vector-mask ;
:: %test-vector-mask-branch ( label temp mask vcc -- ) :: %test-vector-mask-branch ( label temp mask vcc -- )
@ -505,7 +505,7 @@ M:: x86 %test-vector ( dst src temp rep vcc -- )
} case ; } case ;
M:: x86 %test-vector-branch ( label src temp rep vcc -- ) 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 ; label temp mask vcc %test-vector-mask-branch ;
M: x86 %test-vector-reps M: x86 %test-vector-reps

View File

@ -88,16 +88,22 @@ GENERIC: (bit-count) ( x -- n )
: fixnum-bit-count ( x -- n ) : fixnum-bit-count ( x -- n )
{ fixnum } declare { fixnum } declare
[ byte-bit-count ] keep {
[ -8 shift byte-bit-count + ] keep [ byte-bit-count ]
[ -16 shift byte-bit-count + ] keep [ -8 shift byte-bit-count + ]
[ -24 shift byte-bit-count + ] keep [ -16 shift byte-bit-count + ]
cell 8 = [ [ -24 shift byte-bit-count + ]
[ -32 shift byte-bit-count + ] keep [
[ -40 shift byte-bit-count + ] keep cell 8 = [
[ -48 shift byte-bit-count + ] keep {
-56 shift byte-bit-count + >fixnum [ -32 shift byte-bit-count + ]
] [ drop ] if ; [ -40 shift byte-bit-count + ]
[ -48 shift byte-bit-count + ]
[ -56 shift byte-bit-count + ]
} cleave >fixnum
] [ drop ] if
]
} cleave ;
M: fixnum (bit-count) M: fixnum (bit-count)
fixnum-bit-count { fixnum } declare ; inline fixnum-bit-count { fixnum } declare ; inline

View File

@ -115,7 +115,6 @@ SYNTAX: SIMD-INTRINSIC::
[ [ >rep-array ] [ rep-length ] bi ] dip unrolled-map-unsafe underlying>> ; inline [ [ >rep-array ] [ rep-length ] bi ] dip unrolled-map-unsafe underlying>> ; inline
: components-2map ( a b rep quot -- c ) : components-2map ( a b rep quot -- c )
[ [ 2>rep-array ] [ rep-length ] bi ] dip unrolled-2map-unsafe underlying>> ; inline [ [ 2>rep-array ] [ rep-length ] bi ] dip unrolled-2map-unsafe underlying>> ; inline
! XXX
: components-reduce ( a rep quot -- x ) : components-reduce ( a rep quot -- x )
[ >rep-array [ ] ] dip map-reduce ; inline [ >rep-array [ ] ] dip map-reduce ; inline
@ -125,7 +124,6 @@ SYNTAX: SIMD-INTRINSIC::
: bitwise-components-2map ( a b rep quot -- c ) : bitwise-components-2map ( a b rep quot -- c )
[ >bitwise-vector-rep [ 2>rep-array ] [ rep-length ] bi ] dip [ >bitwise-vector-rep [ 2>rep-array ] [ rep-length ] bi ] dip
unrolled-2map-unsafe underlying>> ; inline unrolled-2map-unsafe underlying>> ; inline
! XXX
: bitwise-components-reduce ( a rep quot -- x ) : bitwise-components-reduce ( a rep quot -- x )
[ >bitwise-vector-rep >rep-array [ ] ] dip map-reduce ; inline [ >bitwise-vector-rep >rep-array [ ] ] dip map-reduce ; inline
: bitwise-components-reduce* ( a rep identity quot -- x ) : 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 ] [ [ 2>rep-array cord-append ] [ rep-length 2 * ] bi ]
[ narrow-vector-rep >uint-vector-rep [ <rep-array> ] [ rep-component-type ] bi ] bi [ narrow-vector-rep >uint-vector-rep [ <rep-array> ] [ rep-component-type ] bi ] bi
'[ _ c:c-type-clamp ] swap unrolled-map-as-unsafe underlying>> ; '[ _ c:c-type-clamp ] swap unrolled-map-as-unsafe underlying>> ;
! XXX
SIMD-INTRINSIC: (simd-vunpack-head) ( a rep -- c ) SIMD-INTRINSIC: (simd-vunpack-head) ( a rep -- c )
[ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi [ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi
[ head-slice ] dip call( a' -- c' ) underlying>> ; [ head-slice ] dip call( a' -- c' ) underlying>> ;
! XXX
SIMD-INTRINSIC: (simd-vunpack-tail) ( a rep -- c ) SIMD-INTRINSIC: (simd-vunpack-tail) ( a rep -- c )
[ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi [ >rep-array ] [ widen-vector-rep [ rep-length ] [ [>rep-array] ] bi ] bi
[ tail-slice ] dip call( a' -- c' ) underlying>> ; [ tail-slice ] dip call( a' -- c' ) underlying>> ;
! XXX
SIMD-INTRINSIC: (simd-with) ( n rep -- v ) SIMD-INTRINSIC: (simd-with) ( n rep -- v )
[ rep-length swap '[ _ ] ] [ <rep-array> ] bi replicate-as [ rep-length swap '[ _ ] ] [ <rep-array> ] bi replicate-as
underlying>> ; underlying>> ;

View File

@ -147,101 +147,101 @@ M: simd-128 equal?
! SIMD primitive operations ! SIMD primitive operations
M: simd-128 v+ 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- 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 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+- 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+ 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- 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* 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* 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 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/ 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 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 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 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. 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 M: simd-128 vshuffle-elements
over simd-rep [ (simd-vshuffle-elements) ] [ call-next-method ] vx->v-op ; inline over simd-rep [ (simd-vshuffle-elements) ] [ call-next-method ] vx->v-op ; inline
M: simd-128 vshuffle2-elements M: simd-128 vshuffle2-elements
over simd-rep [ (simd-vshuffle2-elements) ] [ call-next-method ] vvx->v-op ; inline over simd-rep [ (simd-vshuffle2-elements) ] [ call-next-method ] vvx->v-op ; inline
M: simd-128 vshuffle-bytes 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) 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) 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<= 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< 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= 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> 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>= 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? 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? 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? 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 M: simd-128 vcount
dup simd-rep dup simd-rep
[ [ (simd-vgetmask) assert-positive ] [ call-next-method ] v->x-op ] [ [ (simd-vgetmask) assert-positive ] [ call-next-method ] v->x-op ]
[ mask>count ] bi ; inline [ mask>count ] bi ; inline
M: simd-128 vnone?
dup simd-rep [ (simd-vnone?) ] [ call-next-method ] v->x-op ; inline
! SIMD high-level specializations ! SIMD high-level specializations