add sub and scalar_mul operation
This commit is contained in:
@@ -97,12 +97,12 @@ DECLARE_BUF_PROC_LEFT_RIGHT_ANS(float, 512, sub)
|
||||
|
||||
DECLARE_BUF_PROC_RIGHT_ANS_SCALAR(float, sse, scalar_mul)
|
||||
{
|
||||
register __m128 scalar_vec = ((__m128 *)(scalar->data))[0];
|
||||
register __m128 vec = _mm_set_ps1(((float *)(scalar->data))[0]);
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
register __m128 c0 = _mm_mul_ps(right[i].xmm[0], scalar_vec);
|
||||
register __m128 c1 = _mm_mul_ps(right[i].xmm[1], scalar_vec);
|
||||
register __m128 c2 = _mm_mul_ps(right[i].xmm[2], scalar_vec);
|
||||
register __m128 c3 = _mm_mul_ps(right[i].xmm[3], scalar_vec);
|
||||
register __m128 c0 = _mm_mul_ps(right[i].xmm[0], vec);
|
||||
register __m128 c1 = _mm_mul_ps(right[i].xmm[1], vec);
|
||||
register __m128 c2 = _mm_mul_ps(right[i].xmm[2], vec);
|
||||
register __m128 c3 = _mm_mul_ps(right[i].xmm[3], vec);
|
||||
|
||||
ans[i].xmm[0] = c0;
|
||||
ans[i].xmm[1] = c1;
|
||||
@@ -113,10 +113,10 @@ DECLARE_BUF_PROC_RIGHT_ANS_SCALAR(float, sse, scalar_mul)
|
||||
|
||||
DECLARE_BUF_PROC_RIGHT_ANS_SCALAR(float, avx, scalar_mul)
|
||||
{
|
||||
register __m256 scalar_vec = ((__m256 *)(scalar->data))[0];
|
||||
register __m256 vec = _mm256_broadcast_ss(((float *)(scalar->data)));
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
register __m256 c0 = _mm256_mul_ps(right[i].ymm[0], scalar_vec);
|
||||
register __m256 c1 = _mm256_mul_ps(right[i].ymm[1], scalar_vec);
|
||||
register __m256 c0 = _mm256_mul_ps(right[i].ymm[0], vec);
|
||||
register __m256 c1 = _mm256_mul_ps(right[i].ymm[1], vec);
|
||||
|
||||
ans[i].ymm[0] = c0;
|
||||
ans[i].ymm[1] = c1;
|
||||
@@ -125,9 +125,9 @@ DECLARE_BUF_PROC_RIGHT_ANS_SCALAR(float, avx, scalar_mul)
|
||||
|
||||
DECLARE_BUF_PROC_RIGHT_ANS_SCALAR(float, 512, scalar_mul)
|
||||
{
|
||||
register __m512 scalar_vec = ((__m512 *)(scalar->data))[0];
|
||||
register __m512 vec = _mm512_broadcastss_ps(((__m128 *)(scalar->data))[0]);
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
register __m512 c0 = _mm512_mul_ps(right[i].zmm[0], scalar_vec);
|
||||
register __m512 c0 = _mm512_mul_ps(right[i].zmm[0], vec);
|
||||
|
||||
ans[i].zmm[0] = c0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user