summaryrefslogtreecommitdiff
path: root/gr-blocks/lib
diff options
context:
space:
mode:
authorTom Rondeau <tom@trondeau.com>2013-11-17 16:09:31 -0500
committerTom Rondeau <tom@trondeau.com>2013-11-17 16:09:31 -0500
commitf38a7ce4cbde705c72183bf2713612be773e3b0f (patch)
treec9a2c13490923c2be0b4a76cb55578ce086d3789 /gr-blocks/lib
parenta2f687824fa2887e116ab1e01d054b5e883e901c (diff)
blocks: switch all blocks to use the VOLK dispatchers for alignment handling.
Diffstat (limited to 'gr-blocks/lib')
-rw-r--r--gr-blocks/lib/add_ff_impl.cc10
-rw-r--r--gr-blocks/lib/conjugate_cc_impl.cc7
-rw-r--r--gr-blocks/lib/endian_swap_impl.cc59
-rw-r--r--gr-blocks/lib/multiply_cc_impl.cc11
-rw-r--r--gr-blocks/lib/multiply_conjugate_cc_impl.cc7
-rw-r--r--gr-blocks/lib/multiply_const_cc_impl.cc7
-rw-r--r--gr-blocks/lib/multiply_const_ff_impl.cc7
-rw-r--r--gr-blocks/lib/multiply_ff_impl.cc11
8 files changed, 30 insertions, 89 deletions
diff --git a/gr-blocks/lib/add_ff_impl.cc b/gr-blocks/lib/add_ff_impl.cc
index e12e86c061..ca2fbe659c 100644
--- a/gr-blocks/lib/add_ff_impl.cc
+++ b/gr-blocks/lib/add_ff_impl.cc
@@ -56,14 +56,8 @@ namespace gr {
int noi = d_vlen*noutput_items;
memcpy(out, input_items[0], noi*sizeof(float));
- if(is_unaligned()) {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32f_x2_add_32f_u(out, out, (const float*)input_items[i], noi);
- }
- else {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32f_x2_add_32f_a(out, out, (const float*)input_items[i], noi);
- }
+ for(size_t i = 1; i < input_items.size(); i++)
+ volk_32f_x2_add_32f(out, out, (const float*)input_items[i], noi);
return noutput_items;
}
diff --git a/gr-blocks/lib/conjugate_cc_impl.cc b/gr-blocks/lib/conjugate_cc_impl.cc
index 14fbbf172c..55ff30aa5d 100644
--- a/gr-blocks/lib/conjugate_cc_impl.cc
+++ b/gr-blocks/lib/conjugate_cc_impl.cc
@@ -54,12 +54,7 @@ namespace gr {
gr_complex *iptr = (gr_complex *) input_items[0];
gr_complex *optr = (gr_complex *) output_items[0];
- if(is_unaligned()) {
- volk_32fc_conjugate_32fc_u(optr, iptr, noutput_items);
- }
- else {
- volk_32fc_conjugate_32fc_a(optr, iptr, noutput_items);
- }
+ volk_32fc_conjugate_32fc(optr, iptr, noutput_items);
return noutput_items;
}
diff --git a/gr-blocks/lib/endian_swap_impl.cc b/gr-blocks/lib/endian_swap_impl.cc
index 3c263e40a3..604e8b9ad8 100644
--- a/gr-blocks/lib/endian_swap_impl.cc
+++ b/gr-blocks/lib/endian_swap_impl.cc
@@ -60,47 +60,24 @@ namespace gr {
char *out = (char*)output_items[0];
int nbytes(output_signature()->sizeof_stream_item(0));
- if(is_unaligned()) {
- switch(nbytes){
- case 1:
- memcpy(out,in,noutput_items);
- break;
- case 2:
- memcpy(out,in,2*noutput_items);
- volk_16u_byteswap_u((uint16_t*)out,noutput_items);
- break;
- case 4:
- memcpy(out,in,4*noutput_items);
- volk_32u_byteswap_u((uint32_t*)out,noutput_items);
- break;
- case 8:
- memcpy(out,in,8*noutput_items);
- volk_64u_byteswap_u((uint64_t*)out,noutput_items);
- break;
- default:
- throw std::runtime_error("itemsize is not valid for endian_swap!");
- }
- }
- else {
- switch(nbytes) {
- case 1:
- memcpy(out,in,noutput_items);
- break;
- case 2:
- memcpy(out,in,2*noutput_items);
- volk_16u_byteswap_a((uint16_t*)out,noutput_items);
- break;
- case 4:
- memcpy(out,in,4*noutput_items);
- volk_32u_byteswap_a((uint32_t*)out,noutput_items);
- break;
- case 8:
- memcpy(out,in,8*noutput_items);
- volk_64u_byteswap_a((uint64_t*)out,noutput_items);
- break;
- default:
- throw std::runtime_error("itemsize is not valid for endian_swap!");
- }
+ switch(nbytes){
+ case 1:
+ memcpy(out,in,noutput_items);
+ break;
+ case 2:
+ memcpy(out,in,2*noutput_items);
+ volk_16u_byteswap((uint16_t*)out,noutput_items);
+ break;
+ case 4:
+ memcpy(out,in,4*noutput_items);
+ volk_32u_byteswap((uint32_t*)out,noutput_items);
+ break;
+ case 8:
+ memcpy(out,in,8*noutput_items);
+ volk_64u_byteswap((uint64_t*)out,noutput_items);
+ break;
+ default:
+ throw std::runtime_error("itemsize is not valid for endian_swap!");
}
return noutput_items;
diff --git a/gr-blocks/lib/multiply_cc_impl.cc b/gr-blocks/lib/multiply_cc_impl.cc
index b54296c112..2e1ce93b37 100644
--- a/gr-blocks/lib/multiply_cc_impl.cc
+++ b/gr-blocks/lib/multiply_cc_impl.cc
@@ -56,14 +56,9 @@ namespace gr {
int noi = d_vlen*noutput_items;
memcpy(out, input_items[0], noi*sizeof(gr_complex));
- if(is_unaligned()) {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32fc_x2_multiply_32fc_u(out, out, (gr_complex*)input_items[i], noi);
- }
- else {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32fc_x2_multiply_32fc_a(out, out, (gr_complex*)input_items[i], noi);
- }
+ for(size_t i = 1; i < input_items.size(); i++)
+ volk_32fc_x2_multiply_32fc(out, out, (gr_complex*)input_items[i], noi);
+
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_conjugate_cc_impl.cc b/gr-blocks/lib/multiply_conjugate_cc_impl.cc
index 671e1160f6..7f9652152b 100644
--- a/gr-blocks/lib/multiply_conjugate_cc_impl.cc
+++ b/gr-blocks/lib/multiply_conjugate_cc_impl.cc
@@ -57,12 +57,7 @@ namespace gr {
gr_complex *out = (gr_complex *) output_items[0];
int noi = d_vlen*noutput_items;
- if(is_unaligned()) {
- volk_32fc_x2_multiply_conjugate_32fc_u(out, in0, in1, noi);
- }
- else {
- volk_32fc_x2_multiply_conjugate_32fc_a(out, in0, in1, noi);
- }
+ volk_32fc_x2_multiply_conjugate_32fc(out, in0, in1, noi);
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_const_cc_impl.cc b/gr-blocks/lib/multiply_const_cc_impl.cc
index d0393907b0..f6b8dc3d63 100644
--- a/gr-blocks/lib/multiply_const_cc_impl.cc
+++ b/gr-blocks/lib/multiply_const_cc_impl.cc
@@ -58,12 +58,7 @@ namespace gr {
gr_complex *out = (gr_complex *) output_items[0];
int noi = d_vlen*noutput_items;
- if(is_unaligned()) {
- volk_32fc_s32fc_multiply_32fc_u(out, in, d_k, noi);
- }
- else {
- volk_32fc_s32fc_multiply_32fc_a(out, in, d_k, noi);
- }
+ volk_32fc_s32fc_multiply_32fc(out, in, d_k, noi);
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_const_ff_impl.cc b/gr-blocks/lib/multiply_const_ff_impl.cc
index 67205c06c0..366c06181f 100644
--- a/gr-blocks/lib/multiply_const_ff_impl.cc
+++ b/gr-blocks/lib/multiply_const_ff_impl.cc
@@ -58,12 +58,7 @@ namespace gr {
float *out = (float *) output_items[0];
int noi = d_vlen*noutput_items;
- if(is_unaligned()) {
- volk_32f_s32f_multiply_32f_u(out, in, d_k, noi);
- }
- else {
- volk_32f_s32f_multiply_32f_a(out, in, d_k, noi);
- }
+ volk_32f_s32f_multiply_32f(out, in, d_k, noi);
return noutput_items;
}
diff --git a/gr-blocks/lib/multiply_ff_impl.cc b/gr-blocks/lib/multiply_ff_impl.cc
index 912c1bb926..22100497c5 100644
--- a/gr-blocks/lib/multiply_ff_impl.cc
+++ b/gr-blocks/lib/multiply_ff_impl.cc
@@ -56,14 +56,9 @@ namespace gr {
int noi = d_vlen*noutput_items;
memcpy(out, input_items[0], noi*sizeof(float));
- if(is_unaligned()) {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32f_x2_multiply_32f_u(out, out, (float*)input_items[i], noi);
- }
- else {
- for(size_t i = 1; i < input_items.size(); i++)
- volk_32f_x2_multiply_32f_a(out, out, (float*)input_items[i], noi);
- }
+ for(size_t i = 1; i < input_items.size(); i++)
+ volk_32f_x2_multiply_32f(out, out, (float*)input_items[i], noi);
+
return noutput_items;
}