quakeforge/libs/util/test
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
..
Makemodule.am [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
test-bary.c Better (-1..1) random numbers. 2013-03-13 14:41:04 +09:00
test-cexpr.c [util] Add a mini expression parser 2020-12-21 14:22:42 +09:00
test-cmem.c [util] Add a cache-line aligned memory allocator 2020-12-21 14:14:29 +09:00
test-cs.c Catch accuracy errors. 2013-03-13 17:16:34 +09:00
test-darray.c [util] Fix darray test for gcc purity 2020-03-20 12:59:25 +09:00
test-dq.c Add tests for inverting a dual quad transform. 2012-05-15 21:08:43 +09:00
test-half.c Add support for half floats. 2012-04-26 20:55:11 +09:00
test-mat3.c Switch QF's quaterions from wxyz to xyzw. 2018-10-12 14:33:55 +09:00
test-mat4.c mat4 test case fixes. 2018-08-26 15:06:08 +09:00
test-plist.c Correct an apparent typo 2020-02-17 12:58:23 +09:00
test-qfs.c Fix some issues found found by valgrind. 2012-01-24 19:54:21 +09:00
test-quat.c [util] Deal with gcc optimizing out isnan checks 2020-12-21 14:14:38 +09:00
test-seb.c [util] Rework SEB affine/convex testing 2020-06-21 17:07:54 +09:00
test-seg.c Add tests for chunk line numbers. 2014-01-28 16:22:03 +09:00
test-set.c Use set_bits_t for holding set elements. 2013-03-16 21:26:49 +09:00
test-simd.c [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
test-txtbuffer.c Add a buffer-gap text buffer 2020-02-24 17:30:33 +09:00
test-vrect.c Do a pure/const/noreturn/format attribute pass. 2018-10-09 12:42:21 +09:00