diff --git a/basis/math/vectors/simd/simd-docs.factor b/basis/math/vectors/simd/simd-docs.factor index 8aeea4267d..98a7b9273c 100644 --- a/basis/math/vectors/simd/simd-docs.factor +++ b/basis/math/vectors/simd/simd-docs.factor @@ -19,9 +19,9 @@ $nl ARTICLE: "math.vectors.simd.support" "Supported SIMD instruction sets and operations" "At present, the SIMD support makes use of a subset of SSE up to SSE4.1. The subset used depends on the current CPU type." $nl -"SSE1 only supports single-precision SIMD (" { $snippet "float-4" } " and " { $snippet "float-8" } ")." +"SSE1 only supports single-precision SIMD (" { $snippet "float-4" } ")." $nl -"SSE2 introduces double-precision SIMD (" { $snippet "double-2" } " and " { $snippet "double-4" } ") and integer SIMD (all types). Integer SIMD is missing a few features, in particular the " { $link vmin } " and " { $link vmax } " operations only work on " { $snippet "uchar-16" } " and " { $snippet "short-8" } "." +"SSE2 introduces double-precision SIMD (" { $snippet "double-2" } ") and integer SIMD (all types). Integer SIMD is missing a few features; in particular, the " { $link vmin } " and " { $link vmax } " operations only work on " { $snippet "uchar-16" } " and " { $snippet "short-8" } "." $nl "SSE3 introduces horizontal adds (summing all components of a single vector register), which are useful for computing dot products. Where available, SSE3 operations are used to speed up " { $link sum } ", " { $link v. } ", " { $link norm-sq } ", " { $link norm } ", and " { $link distance } "." $nl @@ -40,24 +40,14 @@ $nl { $code "char-16" "uchar-16" - "char-32" - "uchar-32" "short-8" "ushort-8" - "short-16" - "ushort-16" "int-4" "uint-4" - "int-8" - "uint-8" "longlong-2" "ulonglong-2" - "longlong-4" - "ulonglong-4" "float-4" - "float-8" "double-2" - "double-4" } ; ARTICLE: "math.vectors.simd.words" "SIMD vector words" @@ -88,8 +78,8 @@ SIMD: double SYMBOLS: x y ; [ - double-4{ 1.5 2.0 3.7 0.4 } x set - double-4{ 1.5 2.0 3.7 0.4 } y set + float-4{ 1.5 2.0 3.7 0.4 } x set + float-4{ 1.5 2.0 3.7 0.4 } y set x get y get v+ ] optimizer-report.""" } "The following word benefits from SIMD optimization, because it begins with an unsafe declaration:" @@ -183,7 +173,7 @@ $nl ARTICLE: "math.vectors.simd.accuracy" "Numerical accuracy of SIMD primitives" "No guarantees are made that " { $vocab-link "math.vectors.simd" } " words will give identical results on different SSE versions, or between the hardware intrinsics and the software fallbacks." $nl -"In particular, horizontal operations on " { $snippet "float-4" } " and " { $snippet "float-8" } " are affected by this. They are computed with lower precision in intrinsics than the software fallback. Horizontal operations include anything involving adding together the components of a vector, such as " { $link sum } " or " { $link normalize } "." ; +"In particular, horizontal operations on " { $snippet "float-4" } " vectors are affected by this. They are computed with lower precision in intrinsics than the software fallback. Horizontal operations include anything involving adding together the components of a vector, such as " { $link sum } " or " { $link normalize } "." ; ARTICLE: "math.vectors.simd" "Hardware vector arithmetic (SIMD)" "The " { $vocab-link "math.vectors.simd" } " vocabulary extends the " { $vocab-link "math.vectors" } " vocabulary to support efficient vector arithmetic on small, fixed-size vectors."