mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
- cpu-identification.lisp: add avx512fp16-supported-p detection via CPUID
leaf 7 subleaf 0 EDX bit 23.
- packages.lisp: export avx512fp16-supported-p and define sb-simd-avx512fp16
package extending sb-simd-avx512dq.
- instruction-sets/avx512fp16.lisp: define :avx512fp16 instruction set
introducing half-precision float vectors:
* f16.32 (512-bit ZMM, 32 lanes)
* f16.16 (256-bit YMM, 16 lanes)
* f16.8 (128-bit XMM, 8 lanes)
* Vector arithmetic (vaddph, vsubph, vmulph, vdivph, vsqrtph, vminph,
vmaxph, vrcpph, vrsqrtph, vscalefph)
* FMA with :encoding :fma (vfmadd213ph, vfmsub213ph, vfnmadd213ph, vfnmsub213ph)
* Conversions (f32.16 <-> f16.16, s32.16 <-> f16.16)
* Bitwise logic and casts
- define-custom-vops.lisp: add f16.32-not to def-not macrolet.
- x86-64-fake-vops.lisp: add f16.8-broadcast, f16.16-broadcast, and
f16.32-broadcast fake VOPs.
- record.lisp & test-suite/utilities.lisp: replace deprecated
:sb-simd-pack-256 and :sb-simd-pack-512 feature guards with :x86-64.
- test-packages.lisp: validate sb-simd-avx512fp16 symbol bindings.
|
||
|---|---|---|
| .. | ||
| asdf | ||
| sb-aclrepl | ||
| sb-bsd-sockets | ||
| sb-capstone | ||
| sb-cltl2 | ||
| sb-concurrency | ||
| sb-cover | ||
| sb-executable | ||
| sb-gmp | ||
| sb-grovel | ||
| sb-introspect | ||
| sb-manual | ||
| sb-md5 | ||
| sb-mpfr | ||
| sb-perf | ||
| sb-posix | ||
| sb-queue | ||
| sb-rotate-byte | ||
| sb-rt | ||
| sb-simd | ||
| sb-simple-streams | ||
| sb-sprof | ||
| asdf-module.mk | ||
| code-extras.lisp | ||
| compiler-extras.lisp | ||
| lldb_bt.py | ||
| make-contrib.lisp | ||
| Makefile | ||
| README | ||
| stale-symbols.lisp | ||
| STANDARDS | ||
This directory is for extensions to SBCL. They aren't necessary for
core SBCL functionality, or else they'd be built into the main SBCL
binary automatically. And they're not portable Common Lisp, or they'd
be put elsewhere (see http://sbcl.sf.net/libs.php for pointers)
There are two kinds of contrib modules in this directory:
* Newer contrib modules conform to the contrib standard (see
STANDARDS) and are automatically built and installed along with
SBCL itself. Each of these is in its own subdirectory with a
Makefile, and can be loaded with REQUIRE.
* Older standalone files in the contrib directory itself are
effectively unpackaged and may or may not work with the current
SBCL version.
Some good candidates for future extensions here are:
* bindings to existing foreign libraries (e.g. to a regexp library
like PCRE, or to a compression library like zlib, or to a graphics
library like Tk)
* new libraries (e.g. a CORBA interface)
* low-level hooks into SBCL needed to interface it to some wrapper
system (e.g. to interface to a graphical debugger of some sort)
* a too-alpha-to-be-supported-yet tree shaker
SBCL extensions of less general interest, e.g. a binding to the C
interface of the Oracle RDBMS, or particularly large extensions, e.g.
big graphics frameworks, can also be associated with the SBCL project,
but instead of being included in this directory as part of the
distribution, they will be made available or linked to on the SBCL
project web site.