quakeforge/include
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
..
QF [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
client Fix the ghost entities in demo playback. 2012-07-05 19:06:35 +09:00
qw Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
win32 Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
Makemodule.am Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
adivtab.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
alsa_funcs_list.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
anorm_dots.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
anorms.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
asm_draw.h First step for BSP2 support. DOES NOT WORK! 2012-09-07 16:09:24 +09:00
asm_i386.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
block8.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
block16.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
buildnum.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
clview.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
compat.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
context_sdl.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
context_x11.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
d_iface.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
d_ifacea.h Remove pskindesc from affinetridesc_t. 2012-05-19 09:29:05 +09:00
d_local.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
dga_check.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
exp.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
fbset.h big protototype cleanup. Now, except for a few cases, all non-static 2002-11-05 19:12:51 +00:00
garbage.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
getopt.h make gcc more anal about prototypes, string constants and function 2003-01-06 18:28:13 +00:00
gib_buffer.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
gib_builtin.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_classes.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_execute.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_function.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_handle.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_object.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_parse.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
gib_process.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_regex.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
gib_semantics.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_thread.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_tree.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gib_vars.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
gl_warp_sin.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
in_win.h Fix win32 (mingw) builds. 2012-02-07 20:18:23 +09:00
logos.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
mod_internal.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
net_dgrm.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
net_loop.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
net_udp.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
net_vcr.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
net_wins.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
netchan.h Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
netmain.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
noisetextures.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
old_keys.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
ops.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
pstdint.h Prefer int over long for (u)int32_t. 2010-12-23 09:47:05 +09:00
qfalloca.h Handle alloca "correctly". 2013-01-22 21:02:50 +09:00
qstring.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
quakeasm.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
r_cvar.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
r_dynamic.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
r_internal.h [gl,glsl] Copy fog color rather than return pointer 2020-12-24 16:43:28 +09:00
r_local.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00
r_screen.h Clean up vid access a little 2019-07-07 15:38:29 +09:00
r_shared.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
regex.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
rua_internal.h [ruamoko] Create a va_copy for progs 2020-04-01 19:48:05 +09:00
sbar.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
skin_stencil.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
snd_internal.h Update for doxygen 1.8.16 2020-02-11 15:22:42 +09:00
sv_console.h The status bar in the quakeworld server curses console finally does something. Currently only cpu usage, but as a proof-of-concept, it more than does its job. 2007-04-09 00:10:10 +00:00
varrays.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
vgamodes.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
vid_gl.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
vid_internal.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
vid_sw.h Separate render and presentation initialization 2019-07-09 01:00:47 +09:00
vid_vulkan.h [vulkan] Add support for building and loading shaders 2020-12-23 14:32:29 +09:00
vregset.h Nuke the rcsid stuff. 2012-04-22 10:56:32 +09:00
winquake.h Massive whitespace cleanup. 2012-05-22 08:23:22 +09:00
world.h Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00