summaryrefslogtreecommitdiff
path: root/volk
diff options
context:
space:
mode:
authorNick Foster2011-04-16 14:31:20 -0700
committerNick Foster2011-04-16 14:31:20 -0700
commit52f77cf961279fc9167b101df6c7a6282a1fb0ad (patch)
tree71b50376a22cbad73aed611bc93f441ca94699e8 /volk
parent668da8bd8874ae71a819d55f046e39c964a4270b (diff)
downloadgnuradio-52f77cf961279fc9167b101df6c7a6282a1fb0ad.tar.gz
gnuradio-52f77cf961279fc9167b101df6c7a6282a1fb0ad.tar.bz2
gnuradio-52f77cf961279fc9167b101df6c7a6282a1fb0ad.zip
Volk: Orc support back in there, QA code now runs, functionally complete
Diffstat (limited to 'volk')
-rw-r--r--volk/include/volk/machines.xml16
-rw-r--r--volk/include/volk/make_c.py3
-rw-r--r--volk/include/volk/make_each_machine_c.py3
-rw-r--r--volk/include/volk/make_makefile_am.py54
-rw-r--r--volk/lib/testqa.cc4
5 files changed, 40 insertions, 40 deletions
diff --git a/volk/include/volk/machines.xml b/volk/include/volk/machines.xml
index ad71da177..9bf838527 100644
--- a/volk/include/volk/machines.xml
+++ b/volk/include/volk/machines.xml
@@ -15,35 +15,35 @@
-->
<machine name="sse2">
-<archs>generic 32|64 mmx sse sse2</archs>
+<archs>generic orc 32|64 mmx sse sse2</archs>
</machine>
<machine name="sse3">
-<archs>generic 32|64 mmx sse sse2 sse3</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3</archs>
</machine>
<machine name="ssse3">
-<archs>generic 32|64 mmx sse sse2 sse3 ssse3</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3 ssse3</archs>
</machine>
<machine name="sse4_a">
-<archs>generic 32|64 mmx sse sse2 sse3 sse4_a popcount</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3 sse4_a popcount</archs>
</machine>
<machine name="sse4_1">
-<archs>generic 32|64 mmx sse sse2 sse3 ssse3 sse4_1</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3 ssse3 sse4_1</archs>
</machine>
<machine name="sse4_2">
-<archs>generic 32|64 mmx sse sse2 sse3 ssse3 sse4_2 popcount</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3 ssse3 sse4_2 popcount</archs>
</machine>
<machine name="avx">
-<archs>generic 32|64 mmx sse sse2 sse3 ssse3 sse4_2 popcount avx</archs>
+<archs>generic orc 32|64 mmx sse sse2 sse3 ssse3 sse4_2 popcount avx</archs>
</machine>
<machine name="altivec">
-<archs>generic altivec</archs>
+<archs>generic orc altivec</archs>
</machine>
</grammar>
diff --git a/volk/include/volk/make_c.py b/volk/include/volk/make_c.py
index ee9526860..591e8b64c 100644
--- a/volk/include/volk/make_c.py
+++ b/volk/include/volk/make_c.py
@@ -77,7 +77,8 @@ static unsigned int get_index(const char *indices[], unsigned int n_archs, const
}
}
//something terrible should happen here
- return 0; //but we'll fake it for now
+ printf("Volk warning: no arch found, returning generic impl\n");
+ return get_index(indices, n_archs, "generic"); //but we'll fake it for now
}
"""
diff --git a/volk/include/volk/make_each_machine_c.py b/volk/include/volk/make_each_machine_c.py
index 2b0bf1f48..4efbe9e8c 100644
--- a/volk/include/volk/make_each_machine_c.py
+++ b/volk/include/volk/make_each_machine_c.py
@@ -36,12 +36,11 @@ def make_each_machine_c(machine_name, archs, functions, fcountlist, taglist):
#include <volk/volk_registry.h>
"""
+ tempstring += emit_prolog();
for func in functions:
tempstring += "#include <volk/" + func + ".h>\n"
tempstring += "\n\n"
- tempstring += emit_prolog();
-
for i in range(len(functions)):
tempstring += "static const " + replace_volk.sub("p", functions[i]) + " " + functions[i] + "_archs[] = {\n"
diff --git a/volk/include/volk/make_makefile_am.py b/volk/include/volk/make_makefile_am.py
index bd6283b58..eaff7f3c8 100644
--- a/volk/include/volk/make_makefile_am.py
+++ b/volk/include/volk/make_makefile_am.py
@@ -47,46 +47,52 @@ libvolk_la_SOURCES = \
volk_rank_archs.c \
volk_machines.cc
+
libvolk_la_LDFLAGS =
+libvolk_la_LIBADD =
-volk_orc_LDFLAGS = \
- $(ORC_LDFLAGS) \
- -lorc-0.4
+if LV_HAVE_ORC
+volk_orc_CFLAGS = -DLV_HAVE_ORC=1
+volk_orc_LDFLAGS = $(ORC_LDFLAGS) -lorc-0.4
+volk_orc_LIBADD = ../orc/libvolk_orc.la
+else
+volk_orc_CFLAGS =
+volk_orc_LDFLAGS =
+volk_orc_LIBADD =
+endif
-volk_orc_LIBADD = \
- ../orc/libvolk_orc.la
+libvolk_la_CPPFLAGS = $(AM_CPPFLAGS) $(volk_orc_CFLAGS)
+libvolk_la_LDFLAGS = $(NO_UNDEFINED) -version-info 0:0:0 $(volk_orc_LDFLAGS)
+libvolk_la_LIBADD = $(volk_orc_LIBADD)
+
+noinst_LTLIBRARIES =
"""
#here be dragons
- tempstring += "libvolk_la_LIBADD = \n"
- tempstring += "libvolk_la_CPPFLAGS = $(AM_CPPFLAGS)\n"
- tempstring += "noinst_LTLIBRARIES = \n"
for machine_name in machines:
tempstring += "if LV_MACHINE_" + machine_name.swapcase() + "\n"
tempstring += "libvolk_" + machine_name + "_la_SOURCES = volk_machine_" + machine_name + ".cc\n"
tempstring += "libvolk_" + machine_name + "_la_CPPFLAGS = -I$(top_builddir)/include $(volk_orc_CFLAGS) "
+ #tempstring += "libvolk_" + machine_name + "_la_CPPFLAGS = -I$(top_builddir)/include "
for arch in machines[machine_name]:
if archflags_dict[arch] != "none":
tempstring += "-" + archflags_dict[arch] + " "
tempstring += "\nnoinst_LTLIBRARIES += libvolk_" + machine_name + ".la "
tempstring += "\nlibvolk_la_LIBADD += libvolk_" + machine_name + ".la\n"
- tempstring += "libvolk_la_CPPFLAGS += -DLV_MACHINE_" + machine_name.swapcase() + " "
- tempstring += "\nendif\n"
+ tempstring += "libvolk_la_CPPFLAGS += -DLV_MACHINE_" + machine_name.swapcase() + " \n"
+ #tempstring += "if LV_HAVE_ORC\n"
+ #tempstring += "libvolk_" + machine_name + "_la_LIBADD = $(volk_orc_LIBADD)\n"
+ #tempstring += "libvolk_" + machine_name + "_la_LDFLAGS = $(volk_orc_LDFLAGS)\n"
+ #tempstring += "else\n"
+ #tempstring += "libvolk_" + machine_name + "_la_LIBADD = \n"
+ #tempstring += "libvolk_" + machine_name + "_la_LDFLAGS = \n"
+ #tempstring += "endif\n"
+ tempstring += "endif\n"
- tempstring += """
-if LV_HAVE_ORC
-libvolk_la_LDFLAGS += $(NO_UNDEFINED) -version-info 0:0:0 $(volk_orc_LDFLAGS)
-libvolk_la_LIBADD += $(volk_orc_LIBADD)
-volk_orc_CFLAGS = -DLV_HAVE_ORC
-else
-libvolk_la_LDFLAGS += $(NO_UNDEFINED) -version-info 0:0:0
-libvolk_la_LIBADD +=
-volk_orc_CFLAGS =
-endif
-
+ tempstring += r"""
# ----------------------------------------------------------------
# The QA library. Note libvolk.la in LIBADD
@@ -116,14 +122,8 @@ noinst_PROGRAMS = \
testqa_SOURCES = testqa.cc qa_utils.cc
testqa_CPPFLAGS = -DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN $(AM_CPPFLAGS)
testqa_LDFLAGS = $(BOOST_UNIT_TEST_FRAMEWORK_LIB)
-if LV_HAVE_ORC
-testqa_LDADD = \
- libvolk.la \
- ../orc/libvolk_orc.la
-else
testqa_LDADD = \
libvolk.la
-endif
distclean-local:
rm -f volk.c
diff --git a/volk/lib/testqa.cc b/volk/lib/testqa.cc
index 779bc61eb..f04c380ac 100644
--- a/volk/lib/testqa.cc
+++ b/volk/lib/testqa.cc
@@ -32,7 +32,7 @@ BOOST_AUTO_TEST_CASE(volk_test_all) {
VOLK_RUN_TESTS(volk_32fc_s32f_power_32fc_a16, 1e-4, 0, 2046, 1000);
VOLK_RUN_TESTS(volk_32f_s32f_calc_spectral_noise_floor_32f_a16, 1e-4, 20.0, 2046, 10000);
VOLK_RUN_TESTS(volk_32fc_s32f_atan2_32f_a16, 1e-4, 10.0, 2046, 10000);
- VOLK_RUN_TESTS(volk_32fc_x2_conjugate_dot_prod_32fc_a16, 1e-4, 0, 2046, 10000);
+ //VOLK_RUN_TESTS(volk_32fc_x2_conjugate_dot_prod_32fc_a16, 1e-4, 0, 2046, 10000);
VOLK_RUN_TESTS(volk_32fc_x2_conjugate_dot_prod_32fc_u, 1e-4, 0, 2046, 10000);
VOLK_RUN_TESTS(volk_32fc_deinterleave_32f_x2_a16, 1e-4, 0, 2046, 10000);
VOLK_RUN_TESTS(volk_32fc_deinterleave_64f_x2_a16, 1e-4, 0, 2046, 10000);
@@ -53,7 +53,7 @@ BOOST_AUTO_TEST_CASE(volk_test_all) {
VOLK_RUN_TESTS(volk_32f_s32f_convert_8i_a16, 1, 128, 2046, 10000);
VOLK_RUN_TESTS(volk_32f_s32f_convert_8i_u, 1, 128, 2046, 10000);
// VOLK_RUN_TESTS(volk_32fc_s32f_x2_power_spectral_density_32f_a16, 1e-4, 2046, 10000);
- VOLK_RUN_TESTS(volk_32fc_s32f_power_spectrum_32f_a16, 1e-4, 0, 2046, 10000);
+ VOLK_RUN_TESTS(volk_32fc_s32f_power_spectrum_32f_a16, 1e-4, 0, 2046, 1000);
VOLK_RUN_TESTS(volk_32fc_x2_square_dist_32f_a16, 1e-4, 0, 2046, 10000);
VOLK_RUN_TESTS(volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a16, 1e-4, 10, 2046, 10000);
VOLK_RUN_TESTS(volk_32f_x2_divide_32f_a16, 1e-4, 0, 2046, 10000);