quakeforge/config.d
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
..
ac_config_files.m4 [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
asm.m4 split up and modernize configure.ac 2010-08-19 15:01:43 +09:00
build_control.m4 Merge branch 'master' into vulkan 2020-06-25 14:03:52 +09:00
cdrom.m4 Clean up the excessive makefile vars generated by AC_SUBST. 2012-02-13 15:49:55 +09:00
compiling.m4 [util] Add basic SIMD implemented vector functions 2020-12-30 18:20:11 +09:00
compression.m4 Use pkg-config for zlib. 2012-08-18 21:41:33 +09:00
cross_compile.m4 split up and modernize configure.ac 2010-08-19 15:01:43 +09:00
curses.m4 [build] Fix curses.h header check 2020-03-22 01:14:57 +09:00
fbdev.m4 Disable fbdev for now. 2012-07-09 12:06:59 +09:00
git-version-gen Use git-version-gen to create meaningful version strings. 2012-12-21 18:43:03 +09:00
header_files.m4 Handle alloca "correctly". 2013-01-22 21:02:50 +09:00
joystick.m4 split up and modernize configure.ac 2010-08-19 15:01:43 +09:00
library_functions.m4 Add checks for some dlopen flags 2019-07-09 00:45:25 +09:00
mgl.m4 Clean up the excessive makefile vars generated by AC_SUBST. 2012-02-13 15:49:55 +09:00
networking.m4 A bunch of networking compile fixes. 2012-08-18 21:49:30 +09:00
paths.m4 [vulkan] Add support for building and loading shaders 2020-12-23 14:32:29 +09:00
programs.m4 Require bison 2.6 or later. 2013-01-11 13:48:14 +09:00
pthread.m4 "Check" for the availability of pthreads. 2012-08-19 13:40:42 +09:00
qfcc.m4 Replace system defines/includes with qfcc's 2020-02-19 02:35:09 +09:00
result.m4 Fix the broken defaults for sound and cd plugins. 2012-02-12 21:16:28 +09:00
rpm.m4 [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00
sdl.m4 Use pkg-config when checking for sdl. 2012-11-29 11:16:06 +09:00
sound.m4 Clean up the excessive makefile vars generated by AC_SUBST. 2012-02-13 15:49:55 +09:00
svga.m4 Disable svga support for now. 2013-02-14 09:37:25 +09:00
system_services.m4 split up and modernize configure.ac 2010-08-19 15:01:43 +09:00
typedefs_structs_compiler.m4 Fix a bunch of bit-rot. 2018-06-08 13:21:30 +09:00
versions.m4 Clean up the excessive makefile vars generated by AC_SUBST. 2012-02-13 15:49:55 +09:00
vulkan.m4 [vulkan] Add support for building and loading shaders 2020-12-23 14:32:29 +09:00
windows.m4 Reduce CFLAGS abuse a little for mingw targets. 2013-01-28 16:21:42 +09:00
x11.m4 Clean up the excessive makefile vars generated by AC_SUBST. 2012-02-13 15:49:55 +09:00