From ee67ca3fd8acbee79709b7ae2ec2de1af2cf577f Mon Sep 17 00:00:00 2001 From: Alex Loiko Date: Fri, 12 Jan 2018 13:48:06 +0100 Subject: Replace left shift with equivalent multiplication. We have done changes to the Audio Processing fuzzer here https://webrtc-review.googlesource.com/c/src/+/36500/6. We ran the new version of the fuzzer locally. The UBSAN detector found these (minor) issues. We have used the Godbolt compiler explorer to check that similar changes produce identical compiled code. Bug: webrtc:7820 Change-Id: I9cc3b81e4be7cf691f878c37010ce105bc2f3e38 Reviewed-on: https://webrtc-review.googlesource.com/39264 Reviewed-by: Karl Wiberg Commit-Queue: Alex Loiko Cr-Commit-Position: refs/heads/master@{#21605} --- common_audio/signal_processing/complex_fft.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'common_audio') diff --git a/common_audio/signal_processing/complex_fft.c b/common_audio/signal_processing/complex_fft.c index d4666f3598..36689b3c46 100644 --- a/common_audio/signal_processing/complex_fft.c +++ b/common_audio/signal_processing/complex_fft.c @@ -134,8 +134,8 @@ int WebRtcSpl_ComplexFFT(int16_t frfi[], int stages, int mode) tr32 >>= 15 - CFFTSFT; ti32 >>= 15 - CFFTSFT; - qr32 = ((int32_t)frfi[2 * i]) << CFFTSFT; - qi32 = ((int32_t)frfi[2 * i + 1]) << CFFTSFT; + qr32 = ((int32_t)frfi[2 * i]) * (1 << CFFTSFT); + qi32 = ((int32_t)frfi[2 * i + 1]) * (1 << CFFTSFT); frfi[2 * j] = (int16_t)( (qr32 - tr32 + CFFTRND2) >> (1 + CFFTSFT)); @@ -276,8 +276,8 @@ int WebRtcSpl_ComplexIFFT(int16_t frfi[], int stages, int mode) tr32 >>= 15 - CIFFTSFT; ti32 >>= 15 - CIFFTSFT; - qr32 = ((int32_t)frfi[2 * i]) << CIFFTSFT; - qi32 = ((int32_t)frfi[2 * i + 1]) << CIFFTSFT; + qr32 = ((int32_t)frfi[2 * i]) * (1 << CIFFTSFT); + qi32 = ((int32_t)frfi[2 * i + 1]) * (1 << CIFFTSFT); frfi[2 * j] = (int16_t)( (qr32 - tr32 + round2) >> (shift + CIFFTSFT)); -- cgit v1.2.3