summaryrefslogtreecommitdiff
path: root/volk/orc
diff options
context:
space:
mode:
Diffstat (limited to 'volk/orc')
-rw-r--r--volk/orc/volk_32fc_x2_multiply_32fc_a16_orc_impl.orc17
1 files changed, 14 insertions, 3 deletions
diff --git a/volk/orc/volk_32fc_x2_multiply_32fc_a16_orc_impl.orc b/volk/orc/volk_32fc_x2_multiply_32fc_a16_orc_impl.orc
index b72dfe8e7..a27d722cd 100644
--- a/volk/orc/volk_32fc_x2_multiply_32fc_a16_orc_impl.orc
+++ b/volk/orc/volk_32fc_x2_multiply_32fc_a16_orc_impl.orc
@@ -1,7 +1,18 @@
.function volk_32fc_x2_multiply_32fc_a16_orc_impl
.source 8 src1
.source 8 src2
-.floatparam 4 mask
.dest 8 dst
-.temp 8 tmp
-x2 mulf dst, src1, src2
+.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