volk: add SIMD implementation for fixed phase rotation
volk: fixed popcnt.
Removed whitespace and added dtools/bin/remove-whitespace as a tool to do this in the future.
The sed script was provided by Moritz Fischer.
Merge branch 'master' into next
volk: add include for config.h to cc file
volk_32f_s32f_convert_16i_a was also a problem,previously volk_32f_s32f_convert_16i_u was fixed to have config.h.I heard putting config h stuff into public headers was bad practice.Including config.h into the generated cc file should fix this issue from now on.
volk: turning off sse implementation of complex dot product for 32-bit machines until it's fixed.
volk: makes the float-to-int conversion consistent and fixes an overflow bug on 32-bit machines.
Not currently used in GNU Radio, so no change in behavior there.
volk: include config.h to have rintf in windows/msvc.
Conflicts: config/grc_volk.m4 gnuradio-core/src/guile/tests/gengen_ctors.test gnuradio-core/src/lib/Makefile.am gnuradio-core/src/lib/general/.gitignore gnuradio-core/src/lib/general/Makefile.am gnuradio-core/src/lib/gengen/.gitignore...
volk: float to short conversion is consistent between archs and tail cases. Rounds to nearest number.
Merge remote branch 'bistromath/volk_fix' into safe_align
Conflicts: volk/apps/volk_profile.cc
Remove ORC invocation since // doesn't dissuade the generator.
Volk: add scalar const support to the profiler/QA code. Disabled volk_32fc_s32fc_multiply_32fc_a's Orc impl due to it not working.
build: fix autotools for gnuradio-core volkification
volk: adding complex conjugate kernel.
volk: fixed complex multiply and conjugate kernel to use xor for conjugation.
volk: added a 32fc multiply conjugate kernel.
volk: added unaligned version of adding 2 vectors.
volk: new unaligned versions of float multipliers.
core: moving multiply_const_ff from gengen to general to take advantage of volk.
Also adds SSE and AVX and unaligned Volk versions for this.
volk: adding new functions to Makefile.
volk: improving performance of multiply_const and multiply two streams.
volk: adding unaligned versions of complex multiply a constant and complex multiply 2 streams.
volk: adding complex to imag kernel.
volk: added volk magnitiude squared functions (aligned/unaligned) for complex numbers.
volk: added unaligned volk function for magnitude of a complex number.
volk: fix lower bound of int conversion.
volk: float_to_int and float_to_char updated to clip instead of wrap around. The float to int clips at smaller than 2^32 because of the limits of the float representation.
volk: fix a warning.
volk: float_to_short now clips the values instead of wrapping around.
volk: minor changes to fix some warnings.
Conflicts: config/lf_warnings.m4 volk/config/lf_warnings.m4
volk: fixed some of the simpler warnings.
Removed autotools, gr-waveform, some cleanup
Nick Foster owes Nick Corgan a six-pack of beer!
volk: updated autotools Makefile to build with new headers.
volk: squashed changes 32f_s32f_multiply_32f_a 32fc_x2_dot_prod_32fc_u
Volk: 32f_s32f_multiply_32f
Volk: added 32fc x scalar multiply, implemented in Orc & generic. Orc/SSE tested 10x faster than generic.
volk: conversion tweaks to build avx on MSVC
removes gcc warning, dont need symbol export on plain c structs
volk: fixed signed/unsigned comparison warnings.
Volk: renamed everything else to _a instead of _a16, makefiles included
Volk: rename functions _a instead of _a16
Volk: rename aligned functions to just _a instead of _a16
volk: do not install library-only headers
Volk: avx impl for 32f_s32f_convert_32i
Volk: added an AVX impl (of 32f multiply) just to see if it's any faster. It's not.
Volk: forgot to add prefs.c/h to git...
volk: cmake support for volk (gcc + msvc)
volk: implement type-agnostic operators for volk_complex
volk: various backports from MSVC building
1) Added support for __cpuid intrinsic under MSVC
2) Fixed disambiguation for std::abs overload in qa code
3) Fixed bit128 union, the ifdefs were completely wrong
volk: top-level common header cleanup
Since we already have a volk_common.h,moved the attributes, API declaration,and c-linkage macros into volk_common.h
This change removes volk_attributes.h,in favor of one common include header.The implementation headers that require...
volk: removed volk_registry.h, it was superseded by the machines
volk: reorganization of generation sources and generated files
All generation sources have been moved to the gen/ subdirectory.Bootstrap and volk_register.py generate the files into to gen/ subdirectoryin an effort to cleanly separate the static/generated parts of the build tree....
volk: removed cppunit from the build (not used anymore)
Volk: remove some dead files from Makefile.am
volk: added VOLK_API macro to external symbols
volk: replace references to attribute((aligned... with cross platform macro
This replaces all aligned(16) and aligned(128) (which were incorrect).
Attribute macros are on the left because this makes gcc and ms compilers happy.
volk: added attributes header (copied from gruel)
volk: updated lib and include .gitignores for in-tree build
Volk: make_makefile_am.py changes for include dirs
Volk: modified archs.xml to put Orc higher prio than old SSE/SSE2, since Orc gives better results than those platforms on avgTest cases changed to take ~1s each on my i7 laptop
Volk: Compiles and runs with or without Orc installed.
Volk: Orc support back in there, QA code now runs, functionally complete
Volk: manual funcs implemented, QA code runs. Barfs due to missing Orc arch.
Volk: split n_archs out of arch_defs0, began to add _manual support
Volk: hack Orc back in
Volk: lib compiles & links & works for hand test. testsuite doesn't due to lack of _manual() capability.
Volk: volk.c is now generated. manual build works OK.
Volk: volk_machine structures generated, volk_machines is instantiated. Testing manually works OK. All that's left is top-level volk.c and Automake wrangling.
Volk: make_makefile_am.py changes to generate cflags, ldflags. no conditional linking yet.
Interim commit.
Volk: first steps to conditional compilation/multiple obj files.
Fixed mktables for the old non-runtime volk.
Volk_runtime now does self-initialization. You can call volk_xxx_a16() just like in volk.c.The first run of each function does the rank_archs call. Subsequent calls proceed with no overhead.volk_init is still being generated but not used at all.
volk: temporarily removed avx arch.
when -mavx is used, gcc will promote SSE instructions to their AVX equivalents. while this is a benefit on AVX architectures,it makes it really difficult to selectively enable code based on architecture at runtime. GCC suggests compiling different...
reverted mktables deletion until i get my act together and make it go straight from python -> .h
Revert "Removed some mktables stuff since it's passe"
This reverts commit d364316fa2e047890af09c7bdeed776d6391b3db.
Moved the fn indices gen from volk.c to volk_registry.h so the qa code has access to the static stuff
Removed some mktables stuff since it's passe
comments
cpuid: No more compile-time CPU checks. Compiles everything that gcc allows.Configure- and compile-time checks modified to only compile architectures that the compiler will handle.This means that volk will compile every arch that your gcc will compile, no matter if your CPU can execute the instructions or not....
volk: updating to readd unaligned dot product under new name scheme.
Merge branch 'volk_rename' into next
Conflicts: volk/include/volk/Makefile.am volk/lib/Makefile.am volk/lib/qa_volk.cc
volk: Updating build structure to work when orc is not installed.
Distcheck passes for me if liborc is installed or not.
Volk: renamed volk_32fc_32f_power_32fc_a16 to volk_32fc_s32f_power_32fc_a16
Volk: fixed volk_8i_s32f_convert_32f_a16_orc_impl.
Volk: Orc impl for complex multiply fixed. Maybe some room for optimization.
volk: New volk kernel for conjugate dot products with unaligned buffers.
Note: need to convert this to new naming standard.
Volk: Small changes to speed things up.
Volk: added ability to spec scalar in test invocation
volk: replace assembly and separate cases with gcc cpuid for all x86
This should not have been put here.
Merge branch 'volkosx' of github.com:trondeau/gnuradio into volkosx
A fix for volk_cpu being a duplicate variable. Declared as extern in the header file volk_cpu.h and actually created in the C files.
Note that this could be a problem if multiple architectures are ever (can ever?) be built at the same time. If that happens, we can move this variable declaration to another C file that is made common to all builds.
Creates volk_cpu in a .cc file and externs it in the header.
Cleans up the Makefiles for the various platforms. This should also make it easier to add new architectures. Thanks to Josh for the inspiration.