quakeforge/libs
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
..
audio Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
client [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
console [build] Fix a pile of gcc 10 issues 2020-12-21 14:14:29 +09:00
gamecode [build] Fix a pile of gcc 10 issues 2020-12-21 14:14:29 +09:00
gib [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
image [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
models [build] Fix a pile of gcc 10 issues 2020-12-21 14:14:29 +09:00
net Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
qw [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
ruamoko [ruamoko] Add a wrapper for PL_Line 2020-12-23 21:52:42 +09:00
util [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
video [vulkan] Fix a few code generation issues 2020-12-25 00:17:20 +09:00
Makemodule.am [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00