Skip to content

Commit a73a609

Browse files
committed
Implemented AVX512 mix3, mix_copy3 and mix_add3
1 parent da4ea44 commit a73a609

File tree

5 files changed

+384
-30
lines changed

5 files changed

+384
-30
lines changed

include/private/dsp/arch/x86/avx/mix.h

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Copyright (C) 2020 Linux Studio Plugins Project <https://lsp-plug.in/>
3-
* (C) 2020 Vladimir Sadovnikov <sadko4u@gmail.com>
2+
* Copyright (C) 2024 Linux Studio Plugins Project <https://lsp-plug.in/>
3+
* (C) 2024 Vladimir Sadovnikov <sadko4u@gmail.com>
44
*
55
* This file is part of lsp-dsp-lib
66
* Created on: 31 мар. 2020 г.
@@ -93,7 +93,8 @@ namespace lsp
9393
[off] "=&r" (off)
9494
: [a] "r" (a), [b] "r" (b),
9595
[k1] "m" (k1), [k2] "m" (k2)
96-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
96+
: "cc", "memory",
97+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
9798
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
9899
);
99100
}
@@ -161,7 +162,8 @@ namespace lsp
161162
[off] "=&r" (off)
162163
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b),
163164
[k1] "m" (k1), [k2] "m" (k2)
164-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
165+
: "cc", "memory",
166+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
165167
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
166168
);
167169
}
@@ -234,7 +236,8 @@ namespace lsp
234236
[off] "=&r" (off)
235237
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b),
236238
[k1] "m" (k1), [k2] "m" (k2)
237-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
239+
: "cc", "memory",
240+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
238241
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
239242
);
240243
}
@@ -314,7 +317,8 @@ namespace lsp
314317
[off] "=&r" (off)
315318
: [a] "r" (a), [b] "r" (b), [c] "r" (c),
316319
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3)
317-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
320+
: "cc", "memory",
321+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
318322
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
319323
);
320324
}
@@ -394,7 +398,8 @@ namespace lsp
394398
[off] "=&r" (off)
395399
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b), [c] "r" (c),
396400
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3)
397-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
401+
: "cc", "memory",
402+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
398403
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
399404
);
400405
}
@@ -479,7 +484,8 @@ namespace lsp
479484
[off] "=&r" (off)
480485
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b), [c] "r" (c),
481486
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3)
482-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
487+
: "cc", "memory",
488+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
483489
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
484490
);
485491
}
@@ -570,7 +576,8 @@ namespace lsp
570576
[off] "=&r" (off)
571577
: [a] "r" (a), [b] "r" (b), [c] "r" (c), [d] "r" (d),
572578
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3), [k4] "m" (k4)
573-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
579+
: "cc", "memory",
580+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
574581
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
575582
);
576583
}
@@ -675,7 +682,8 @@ namespace lsp
675682
: [dst] "+r" (dst), [a] "+r" (a), [b] "+r" (b), [c] "+r" (c), [d] "+r" (d),
676683
[count] "+r" (count)
677684
: [k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3), [k4] "m" (k4)
678-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
685+
: "cc", "memory",
686+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
679687
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
680688
);
681689
}
@@ -784,7 +792,8 @@ namespace lsp
784792
: [dst] "+r" (dst), [a] "+r" (a), [b] "+r" (b), [c] "+r" (c), [d] "+r" (d),
785793
[count] "+r" (count)
786794
: [k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3), [k4] "m" (k4)
787-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
795+
: "cc", "memory",
796+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
788797
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
789798
);
790799
}
@@ -875,7 +884,8 @@ namespace lsp
875884
[off] "=&r" (off)
876885
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b), [c] "r" (c), [d] "r" (d),
877886
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3), [k4] "m" (k4)
878-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
887+
: "cc", "memory",
888+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
879889
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
880890
);
881891
}
@@ -971,12 +981,13 @@ namespace lsp
971981
[off] "=&r" (off)
972982
: [dst] "r" (dst), [a] "r" (a), [b] "r" (b), [c] "r" (c), [d] "r" (d),
973983
[k1] "m" (k1), [k2] "m" (k2), [k3] "m" (k3), [k4] "m" (k4)
974-
: "%xmm0", "%xmm1", "%xmm2", "%xmm3",
984+
: "cc", "memory",
985+
"%xmm0", "%xmm1", "%xmm2", "%xmm3",
975986
"%xmm4", "%xmm5", "%xmm6", "%xmm7"
976987
);
977988
}
978989
#endif
979-
}
980-
}
990+
} /* namespace avx */
991+
} /* namespace lsp */
981992

982993
#endif /* PRIVATE_DSP_ARCH_X86_AVX_MIX_H_ */

0 commit comments

Comments
 (0)