diff options
author | Ron Economos <w6rz@comcast.net> | 2021-10-11 15:28:25 -0700 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2022-02-28 14:47:47 -0600 |
commit | 0871ac23092d815ee7db86d3a82d234a28ed8111 (patch) | |
tree | 91f055d2c88cc23039b1bdf0945368c69a6acb5c /host/lib | |
parent | a297c9765a0309ff194bf36074871f5bb1b6c34d (diff) | |
download | uhd-0871ac23092d815ee7db86d3a82d234a28ed8111.tar.gz uhd-0871ac23092d815ee7db86d3a82d234a28ed8111.tar.bz2 uhd-0871ac23092d815ee7db86d3a82d234a28ed8111.zip |
conversion: Saturate transmit IQ levels on NEON architectures.
Signed-off-by: Ron Economos <w6rz@comcast.net>
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/convert/convert_with_neon.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/host/lib/convert/convert_with_neon.cpp b/host/lib/convert/convert_with_neon.cpp index 9aec68bab..1c8650e89 100644 --- a/host/lib/convert/convert_with_neon.cpp +++ b/host/lib/convert/convert_with_neon.cpp @@ -33,25 +33,25 @@ DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD) float32x4_t Q2 = vmulq_f32(Q1, Q0); int32x4_t Q3 = vcvtq_s32_f32(Q2); - int16x4_t D8 = vmovn_s32(Q3); + int16x4_t D8 = vqmovn_s32(Q3); int16x4_t D9 = vrev32_s16(D8); vst1_s16((reinterpret_cast<int16_t*>(&output[i])), D9); float32x4_t Q5 = vmulq_f32(Q4, Q0); int32x4_t Q6 = vcvtq_s32_f32(Q5); - int16x4_t D10 = vmovn_s32(Q6); + int16x4_t D10 = vqmovn_s32(Q6); int16x4_t D11 = vrev32_s16(D10); vst1_s16((reinterpret_cast<int16_t*>(&output[i + 2])), D11); float32x4_t Q8 = vmulq_f32(Q7, Q0); int32x4_t Q9 = vcvtq_s32_f32(Q8); - int16x4_t D12 = vmovn_s32(Q9); + int16x4_t D12 = vqmovn_s32(Q9); int16x4_t D13 = vrev32_s16(D12); vst1_s16((reinterpret_cast<int16_t*>(&output[i + 4])), D13); float32x4_t Q11 = vmulq_f32(Q10, Q0); int32x4_t Q13 = vcvtq_s32_f32(Q11); - int16x4_t D14 = vmovn_s32(Q13); + int16x4_t D14 = vqmovn_s32(Q13); int16x4_t D15 = vrev32_s16(D14); vst1_s16((reinterpret_cast<int16_t*>(&output[i + 6])), D15); } |