diff options
author | Tom Rondeau <tom@trondeau.com> | 2013-11-17 16:09:31 -0500 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2013-11-17 16:09:31 -0500 |
commit | f38a7ce4cbde705c72183bf2713612be773e3b0f (patch) | |
tree | c9a2c13490923c2be0b4a76cb55578ce086d3789 /gr-blocks/lib | |
parent | a2f687824fa2887e116ab1e01d054b5e883e901c (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.cc | 10 | ||||
-rw-r--r-- | gr-blocks/lib/conjugate_cc_impl.cc | 7 | ||||
-rw-r--r-- | gr-blocks/lib/endian_swap_impl.cc | 59 | ||||
-rw-r--r-- | gr-blocks/lib/multiply_cc_impl.cc | 11 | ||||
-rw-r--r-- | gr-blocks/lib/multiply_conjugate_cc_impl.cc | 7 | ||||
-rw-r--r-- | gr-blocks/lib/multiply_const_cc_impl.cc | 7 | ||||
-rw-r--r-- | gr-blocks/lib/multiply_const_ff_impl.cc | 7 | ||||
-rw-r--r-- | gr-blocks/lib/multiply_ff_impl.cc | 11 |
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; } |