quakeforge/libs/util
Bill Currie 09a10f80e1 [util] Add basic SIMD implemented vector functions
They take advantage of gcc's vector_size attribute and so only cross,
dot, qmul, qvmul and qrot (create rotation quaternion from two vectors)
are needed at this stage as basic (per-component) math is supported
natively by gcc.

The provided functions work on horizontal (array-of-structs) data, ie a
vec4d_t or vec4f_t represents a single vector, or traditional vector
layout. Vertical layout (struct-of-arrays) does not need any special
functions as the regular math can be used to operate on four vectors at
a time.

Functions are provided for loading a vec4 from a vec3 (4th element set
to 0) and storing a vec4 into a vec3 (discarding the 4th element).

With this, QF will require AVX2 support (needed for vec4d_t). Without
support for doubles, SSE is possible, but may not be worthwhile for
horizontal data.

Fused-multiply-add is NOT used because it alters the results between
unoptimized and optimized code, resulting in -mfma really meaning
-mfast-math-anyway. I really do not want to have to debug issues that
occur only in optimized code.
2020-12-30 18:20:11 +09:00
..
test [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
bspfile.c Fixup extended bsp when loading the file. 2012-12-30 13:29:24 +09:00
buildnum.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
cbuf.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
cexpr-lex.l [util] Propagate cexpr errors back to the caller 2020-12-21 20:15:43 +09:00
cexpr-parse.y [util] Add an int to uint cast for cexpr 2020-12-24 09:57:24 +09:00
cexpr-type.c [util] Add an int to uint cast for cexpr 2020-12-24 09:57:24 +09:00
cexpr-vars.c [util] Propagate cexpr errors back to the caller 2020-12-21 20:15:43 +09:00
checksum.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
cmd.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
cmem.c [util] Add a cache-line aligned memory allocator 2020-12-21 14:14:29 +09:00
crc.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
cvar.c Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
dirent.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
dstring.c [dstring] Return the string instead of printed size 2020-02-26 19:00:19 +09:00
fendian.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
fnmatch.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
getopt.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
getopt1.c Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
hash.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
idparse.c Fix incorrect parsing of comments. 2013-01-16 10:31:02 +09:00
info.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
link.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
llist.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
Makemodule.am [util] Add a mini expression parser 2020-12-21 14:22:42 +09:00
math.S export BoxOnPlaneSide properly in windows so it doesn't cause a segfault 2004-01-22 02:26:08 +00:00
mathlib.c [util] Calculate quaternion to rotate between two vectors 2020-12-21 14:14:10 +09:00
mdfour.c Clean up after removal of uint32.h 2020-02-29 16:11:07 +09:00
mersenne.c Implement the Mersenne Twister PRNG. 2013-01-21 20:05:16 +09:00
msg.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
pakfile.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
plugin.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
qargs.c Fix some null argument issues. 2018-09-07 22:30:44 +09:00
qendian.c Fix some type-size safety issues. 2012-08-19 13:37:06 +09:00
qfplist.c [util] Zero plist symtabl object memory 2020-12-25 00:28:26 +09:00
quakefs.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
quakeio.c Remove a redundant va_start/va_end pair. 2016-01-03 18:38:41 +09:00
riff.c Fix a bunch of dead increments. 2018-09-09 11:12:04 +09:00
script.c Make script much friendlier to use 2020-02-26 09:39:03 +09:00
segtext.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
set.c Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
sizebuf.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
string.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
sys.c [util] Fix some missed signal calls 2020-03-23 15:28:12 +09:00
sys_ia32.S needed EXPORT in both ends if the #if/#else/#endif 2004-02-18 03:19:57 +00:00
txtbuffer.c [util] Add a means to open a gap in a text buffer 2020-03-22 20:19:25 +09:00
va.c [util] Make va slight robust against chained use 2020-03-17 15:05:58 +09:00
ver_check.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
vrect.c Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
wad.c Separate file search from loading. 2014-01-28 16:22:05 +09:00
wadfile.c [util] Make hash-tables semi-thread-safe 2020-03-25 15:43:16 +09:00
zone.c [build] Fix a pile of gcc 10 issues 2020-12-21 14:14:29 +09:00