blob: 9868b7f080e5332887deabc9236d5c12767119ef [file] [log] [blame]
Bill Yi4e213d52015-06-23 13:53:11 -07001/* IA-32 SSE version of peakval
2 * Copyright 2004 Phil Karn, KA9Q
3 */
4
5#include <stdlib.h>
6#include "fec.h"
7
8int peakval_sse_assist(signed short *,int);
9
10int peakval_sse(signed short *b,int cnt){
11 int peak = 0;
12 int a;
13
14 while(((int)b & 7) != 0 && cnt != 0){
15 a = abs(*b);
16 if(a > peak)
17 peak = a;
18 b++;
19 cnt--;
20 }
21 a = peakval_sse_assist(b,cnt);
22 if(a > peak)
23 peak = a;
24 b += cnt & ~3;
25 cnt &= 3;
26
27 while(cnt != 0){
28 a = abs(*b);
29 if(a > peak)
30 peak = a;
31 b++;
32 cnt--;
33 }
34 return peak;
35}