| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
| 3  * | 3  * | 
| 4  *  Use of this source code is governed by a BSD-style license | 4  *  Use of this source code is governed by a BSD-style license | 
| 5  *  that can be found in the LICENSE file in the root of the source | 5  *  that can be found in the LICENSE file in the root of the source | 
| 6  *  tree. An additional intellectual property rights grant can be found | 6  *  tree. An additional intellectual property rights grant can be found | 
| 7  *  in the file PATENTS.  All contributing project authors may | 7  *  in the file PATENTS.  All contributing project authors may | 
| 8  *  be found in the AUTHORS file in the root of the source tree. | 8  *  be found in the AUTHORS file in the root of the source tree. | 
| 9  */ | 9  */ | 
| 10 | 10 | 
| 11 #include "webrtc/common_audio/signal_processing/include/signal_processing_librar
    y.h" | 11 #include "webrtc/common_audio/signal_processing/include/signal_processing_librar
    y.h" | 
| 12 | 12 | 
| 13 /* C version of WebRtcSpl_CrossCorrelation() for generic platforms. */ | 13 /* C version of WebRtcSpl_CrossCorrelation() for generic platforms. */ | 
| 14 void WebRtcSpl_CrossCorrelationC(int32_t* cross_correlation, | 14 void WebRtcSpl_CrossCorrelationC(int32_t* cross_correlation, | 
| 15                                  const int16_t* seq1, | 15                                  const int16_t* seq1, | 
| 16                                  const int16_t* seq2, | 16                                  const int16_t* seq2, | 
| 17                                  int16_t dim_seq, | 17                                  int16_t dim_seq, | 
| 18                                  int16_t dim_cross_correlation, | 18                                  int16_t dim_cross_correlation, | 
| 19                                  int right_shifts, | 19                                  int right_shifts, | 
| 20                                  int step_seq2) { | 20                                  int step_seq2) { | 
| 21   int i = 0, j = 0; | 21   int i = 0, j = 0; | 
| 22 | 22 | 
| 23   for (i = 0; i < dim_cross_correlation; i++) { | 23   for (i = 0; i < dim_cross_correlation; i++) { | 
| 24     int32_t corr = 0; | 24     int32_t corr = 0; | 
| 25     // Linux 64-bit performance is improved by the int16_t cast below. |  | 
| 26     // Presumably this is some sort of compiler bug, as there's no obvious |  | 
| 27     // reason why that should result in better code. |  | 
| 28     for (j = 0; j < dim_seq; j++) | 25     for (j = 0; j < dim_seq; j++) | 
| 29       corr += (seq1[j] * seq2[j]) >> (int16_t)right_shifts; | 26       corr += (seq1[j] * seq2[j]) >> right_shifts; | 
| 30     seq2 += step_seq2; | 27     seq2 += step_seq2; | 
| 31     *cross_correlation++ = corr; | 28     *cross_correlation++ = corr; | 
| 32   } | 29   } | 
| 33 } | 30 } | 
| OLD | NEW | 
|---|