diff options
author | manojgudi | 2013-10-07 14:26:59 +0530 |
---|---|---|
committer | manojgudi | 2013-10-07 14:26:59 +0530 |
commit | 6bc92d66be9975d618ac4cd104e7f5ff6e8605f2 (patch) | |
tree | 3a77657667b4ef037f712ee68a5ec86c86cba5c5 /volk/orc | |
parent | 452defdb4a78e9e826740ddf4b9673e926c568a4 (diff) | |
parent | e9576e44ef8f0ad67d8cd8a4e025a0f8da0727f8 (diff) | |
download | gnuradio-6bc92d66be9975d618ac4cd104e7f5ff6e8605f2.tar.gz gnuradio-6bc92d66be9975d618ac4cd104e7f5ff6e8605f2.tar.bz2 gnuradio-6bc92d66be9975d618ac4cd104e7f5ff6e8605f2.zip |
merge from gr36_ni branch
Diffstat (limited to 'volk/orc')
25 files changed, 230 insertions, 0 deletions
diff --git a/volk/orc/volk_16i_s32f_deinterleave_32f_x2_a_orc_impl.orc b/volk/orc/volk_16i_s32f_deinterleave_32f_x2_a_orc_impl.orc new file mode 100644 index 000000000..fd8915da0 --- /dev/null +++ b/volk/orc/volk_16i_s32f_deinterleave_32f_x2_a_orc_impl.orc @@ -0,0 +1,12 @@ +.function volk_16ic_s32f_deinterleave_32f_x2_a_orc_impl +.dest 4 idst +.dest 4 qdst +.source 4 src +.floatparam 4 scalar +.temp 8 iql +.temp 8 iqf + +x2 convswl iql, src +x2 convlf iqf, iql +x2 divf iqf, iqf, scalar +splitql qdst, idst, iqf diff --git a/volk/orc/volk_16ic_deinterleave_16i_x2_a_orc_impl.orc b/volk/orc/volk_16ic_deinterleave_16i_x2_a_orc_impl.orc new file mode 100644 index 000000000..76faa936a --- /dev/null +++ b/volk/orc/volk_16ic_deinterleave_16i_x2_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_16ic_deinterleave_16i_x2_a_orc_impl +.dest 2 idst +.dest 2 qdst +.source 4 src +splitlw qdst, idst, src diff --git a/volk/orc/volk_16ic_deinterleave_real_8i_a_orc_impl.orc b/volk/orc/volk_16ic_deinterleave_real_8i_a_orc_impl.orc new file mode 100644 index 000000000..8db49fd7c --- /dev/null +++ b/volk/orc/volk_16ic_deinterleave_real_8i_a_orc_impl.orc @@ -0,0 +1,6 @@ +.function volk_16ic_deinterleave_real_8i_a_orc_impl +.dest 1 dst +.source 4 src +.temp 2 iw +select0lw iw, src +convhwb dst, iw diff --git a/volk/orc/volk_16ic_magnitude_16i_a_orc_impl.orc b/volk/orc/volk_16ic_magnitude_16i_a_orc_impl.orc new file mode 100644 index 000000000..fbaebc46d --- /dev/null +++ b/volk/orc/volk_16ic_magnitude_16i_a_orc_impl.orc @@ -0,0 +1,23 @@ +.function volk_16ic_magnitude_16i_a_orc_impl +.source 4 src +.dest 2 dst +.floatparam 4 scalar +.temp 8 iql +.temp 8 iqf +.temp 8 prodiqf +.temp 4 qf +.temp 4 if +.temp 4 sumf +.temp 4 rootf +.temp 4 rootl + +x2 convswl iql, src +x2 convlf iqf, iql +x2 divf iqf, iqf, scalar +x2 mulf prodiqf, iqf, iqf +splitql qf, if, prodiqf +addf sumf, if, qf +sqrtf rootf, sumf +mulf rootf, rootf, scalar +convfl rootl, rootf +convlw dst, rootl diff --git a/volk/orc/volk_16sc_magnitude_32f_aligned16_orc_impl.orc b/volk/orc/volk_16sc_magnitude_32f_aligned16_orc_impl.orc new file mode 100644 index 000000000..66fef7d2e --- /dev/null +++ b/volk/orc/volk_16sc_magnitude_32f_aligned16_orc_impl.orc @@ -0,0 +1,25 @@ +.function volk_16ic_magnitude_32f_a_orc_impl +.source 4 src +.dest 4 dst +.floatparam 4 scalar +.temp 4 reall +.temp 4 imagl +.temp 2 reals +.temp 2 imags +.temp 4 realf +.temp 4 imagf +.temp 4 sumf + + + +splitlw reals, imags, src +convswl reall, reals +convswl imagl, imags +convlf realf, reall +convlf imagf, imagl +divf realf, realf, scalar +divf imagf, imagf, scalar +mulf realf, realf, realf +mulf imagf, imagf, imagf +addf sumf, realf, imagf +sqrtf dst, sumf diff --git a/volk/orc/volk_16u_byteswap_a_orc_impl.orc b/volk/orc/volk_16u_byteswap_a_orc_impl.orc new file mode 100644 index 000000000..b96ba84af --- /dev/null +++ b/volk/orc/volk_16u_byteswap_a_orc_impl.orc @@ -0,0 +1,3 @@ +.function volk_16u_byteswap_a_orc_impl +.dest 2 dst +swapw dst, dst diff --git a/volk/orc/volk_32f_s32f_multiply_32f_a_orc_impl.orc b/volk/orc/volk_32f_s32f_multiply_32f_a_orc_impl.orc new file mode 100644 index 000000000..ea23fc045 --- /dev/null +++ b/volk/orc/volk_32f_s32f_multiply_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_s32f_multiply_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.floatparam 4 scalar +mulf dst, src1, scalar diff --git a/volk/orc/volk_32f_s32f_normalize_a_orc_impl.orc b/volk/orc/volk_32f_s32f_normalize_a_orc_impl.orc new file mode 100644 index 000000000..986fdf665 --- /dev/null +++ b/volk/orc/volk_32f_s32f_normalize_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_s32f_normalize_a_orc_impl +.source 4 src1 +.floatparam 4 invscalar +.dest 4 dst +mulf dst, src1, invscalar diff --git a/volk/orc/volk_32f_sqrt_32f_a_orc_impl.orc b/volk/orc/volk_32f_sqrt_32f_a_orc_impl.orc new file mode 100644 index 000000000..f339b1122 --- /dev/null +++ b/volk/orc/volk_32f_sqrt_32f_a_orc_impl.orc @@ -0,0 +1,4 @@ +.function volk_32f_sqrt_32f_a_orc_impl +.source 4 src +.dest 4 dst +sqrtf dst, src diff --git a/volk/orc/volk_32f_x2_add_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_add_32f_a_orc_impl.orc new file mode 100644 index 000000000..450cc6a9e --- /dev/null +++ b/volk/orc/volk_32f_x2_add_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_add_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +addf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_divide_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_divide_32f_a_orc_impl.orc new file mode 100644 index 000000000..ee3b61b82 --- /dev/null +++ b/volk/orc/volk_32f_x2_divide_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_divide_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +divf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_dot_prod_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_dot_prod_32f_a_orc_impl.orc new file mode 100644 index 000000000..b367f3091 --- /dev/null +++ b/volk/orc/volk_32f_x2_dot_prod_32f_a_orc_impl.orc @@ -0,0 +1,6 @@ +.function volk_32f_x2_dot_prod_32f_a_orc_impl +.source 4 src1 +.source 4 src2 +.dest 4 dst +.accumulator 4 accum +addf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_max_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_max_32f_a_orc_impl.orc new file mode 100644 index 000000000..725201633 --- /dev/null +++ b/volk/orc/volk_32f_x2_max_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_max_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +maxf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_min_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_min_32f_a_orc_impl.orc new file mode 100644 index 000000000..a71ed8250 --- /dev/null +++ b/volk/orc/volk_32f_x2_min_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_min_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +minf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_multiply_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_multiply_32f_a_orc_impl.orc new file mode 100644 index 000000000..c17d539fd --- /dev/null +++ b/volk/orc/volk_32f_x2_multiply_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_multiply_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +mulf dst, src1, src2 diff --git a/volk/orc/volk_32f_x2_subtract_32f_a_orc_impl.orc b/volk/orc/volk_32f_x2_subtract_32f_a_orc_impl.orc new file mode 100644 index 000000000..b3b0f256e --- /dev/null +++ b/volk/orc/volk_32f_x2_subtract_32f_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32f_x2_subtract_32f_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +subf dst, src1, src2 diff --git a/volk/orc/volk_32fc_32f_multiply_32fc_a_orc_impl.orc b/volk/orc/volk_32fc_32f_multiply_32fc_a_orc_impl.orc new file mode 100644 index 000000000..aa82699f5 --- /dev/null +++ b/volk/orc/volk_32fc_32f_multiply_32fc_a_orc_impl.orc @@ -0,0 +1,7 @@ +.function volk_32fc_32f_multiply_32fc_a_orc_impl +.source 8 src1 +.source 4 src2 +.dest 8 dst +.temp 8 tmp +mergelq tmp, src2, src2 +x2 mulf dst, src1, tmp diff --git a/volk/orc/volk_32fc_magnitude_32f_a_orc_impl.orc b/volk/orc/volk_32fc_magnitude_32f_a_orc_impl.orc new file mode 100644 index 000000000..032ab2b1b --- /dev/null +++ b/volk/orc/volk_32fc_magnitude_32f_a_orc_impl.orc @@ -0,0 +1,13 @@ +.function volk_32fc_magnitude_32f_a_orc_impl +.source 8 src +.dest 4 dst +.temp 8 iqf +.temp 8 prodiqf +.temp 4 qf +.temp 4 if +.temp 4 sumf + +x2 mulf prodiqf, src, src +splitql qf, if, prodiqf +addf sumf, if, qf +sqrtf dst, sumf diff --git a/volk/orc/volk_32fc_s32f_magnitude_16i_a_orc_impl.orc b/volk/orc/volk_32fc_s32f_magnitude_16i_a_orc_impl.orc new file mode 100644 index 000000000..d3bf78935 --- /dev/null +++ b/volk/orc/volk_32fc_s32f_magnitude_16i_a_orc_impl.orc @@ -0,0 +1,23 @@ +.function volk_32fc_s32f_magnitude_16i_a_orc_impl +.source 8 src +.dest 2 dst +.floatparam 4 scalar +.temp 8 iqf +.temp 8 prodiqf +.temp 4 qf +.temp 4 if +.temp 4 sumf +.temp 4 rootf +.temp 4 rootl +#.temp 4 maskl + +x2 mulf prodiqf, src, src +splitql qf, if, prodiqf +addf sumf, if, qf +sqrtf rootf, sumf +mulf rootf, rootf, scalar +#cmpltf maskl, 32768.0, rootf +#andl maskl, maskl, 0x80000000 +#orl rootf, rootf, maskl +convfl rootl, rootf +convsuslw dst, rootl diff --git a/volk/orc/volk_32fc_s32fc_multiply_32fc_a_orc_impl.orc b/volk/orc/volk_32fc_s32fc_multiply_32fc_a_orc_impl.orc new file mode 100644 index 000000000..2577e034f --- /dev/null +++ b/volk/orc/volk_32fc_s32fc_multiply_32fc_a_orc_impl.orc @@ -0,0 +1,18 @@ +.function volk_32fc_s32fc_multiply_32fc_a_orc_impl +.source 8 src1 +.floatparam 8 scalar +.dest 8 dst +.temp 8 iqprod +.temp 4 real +.temp 4 imag +.temp 4 ac +.temp 4 bd +.temp 8 swapped +x2 mulf iqprod, src1, scalar +splitql bd, ac, iqprod +subf real, ac, bd +swaplq swapped, src1 +x2 mulf iqprod, swapped, scalar +splitql bd, ac, iqprod +addf imag, ac, bd +mergelq dst, real, imag diff --git a/volk/orc/volk_32fc_x2_multiply_32fc_a_orc_impl.orc b/volk/orc/volk_32fc_x2_multiply_32fc_a_orc_impl.orc new file mode 100644 index 000000000..cb8a12d81 --- /dev/null +++ b/volk/orc/volk_32fc_x2_multiply_32fc_a_orc_impl.orc @@ -0,0 +1,18 @@ +.function volk_32fc_x2_multiply_32fc_a_orc_impl +.source 8 src1 +.source 8 src2 +.dest 8 dst +.temp 8 iqprod +.temp 4 real +.temp 4 imag +.temp 4 ac +.temp 4 bd +.temp 8 swapped +x2 mulf iqprod, src1, src2 +splitql bd, ac, iqprod +subf real, ac, bd +swaplq swapped, src1 +x2 mulf iqprod, swapped, src2 +splitql bd, ac, iqprod +addf imag, ac, bd +mergelq dst, real, imag diff --git a/volk/orc/volk_32i_x2_and_32i_a_orc_impl.orc b/volk/orc/volk_32i_x2_and_32i_a_orc_impl.orc new file mode 100644 index 000000000..1845e4654 --- /dev/null +++ b/volk/orc/volk_32i_x2_and_32i_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32i_x2_and_32i_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +andl dst, src1, src2 diff --git a/volk/orc/volk_32i_x2_or_32i_a_orc_impl.orc b/volk/orc/volk_32i_x2_or_32i_a_orc_impl.orc new file mode 100644 index 000000000..004663f42 --- /dev/null +++ b/volk/orc/volk_32i_x2_or_32i_a_orc_impl.orc @@ -0,0 +1,5 @@ +.function volk_32i_x2_or_32i_a_orc_impl +.dest 4 dst +.source 4 src1 +.source 4 src2 +orl dst, src1, src2 diff --git a/volk/orc/volk_8i_convert_16i_a_orc_impl.orc b/volk/orc/volk_8i_convert_16i_a_orc_impl.orc new file mode 100644 index 000000000..17198bf1e --- /dev/null +++ b/volk/orc/volk_8i_convert_16i_a_orc_impl.orc @@ -0,0 +1,6 @@ +.function volk_8i_convert_16i_a_orc_impl +.source 1 src +.dest 2 dst +.temp 2 tmp +convsbw tmp, src +shlw dst, tmp, 8 diff --git a/volk/orc/volk_8i_s32f_convert_32f_a_orc_impl.orc b/volk/orc/volk_8i_s32f_convert_32f_a_orc_impl.orc new file mode 100644 index 000000000..ad54fb1e1 --- /dev/null +++ b/volk/orc/volk_8i_s32f_convert_32f_a_orc_impl.orc @@ -0,0 +1,11 @@ +.function volk_8i_s32f_convert_32f_a_orc_impl +.source 1 src +.dest 4 dst +.floatparam 4 scalar +.temp 4 flsrc +.temp 4 lsrc +.temp 2 ssrc +convsbw ssrc, src +convswl lsrc, ssrc +convlf flsrc, lsrc +mulf dst, flsrc, scalar |