47 lines
682 B
Text
47 lines
682 B
Text
|
|
typedef float *__restrict__ pRF32;
|
|
typedef double *__restrict__ pRF64;
|
|
|
|
float maxv_f32 (pRF32 a)
|
|
{
|
|
int i;
|
|
float s;
|
|
asm ("" : "=w" (s) : "0" (a[0]));
|
|
for (i=0;i<8;i++)
|
|
s = (s > a[i] ? s : a[i]);
|
|
|
|
return s;
|
|
}
|
|
|
|
float minv_f32 (pRF32 a)
|
|
{
|
|
int i;
|
|
float s;
|
|
asm ("" : "=w" (s) : "0" (a[0]));
|
|
for (i=0;i<16;i++)
|
|
s = (s < a[i] ? s : a[i]);
|
|
|
|
return s;
|
|
}
|
|
|
|
double maxv_f64 (pRF64 a)
|
|
{
|
|
int i;
|
|
double s;
|
|
asm ("" : "=w" (s) : "0" (a[0]));
|
|
for (i=0;i<8;i++)
|
|
s = (s > a[i] ? s : a[i]);
|
|
|
|
return s;
|
|
}
|
|
|
|
double minv_f64 (pRF64 a)
|
|
{
|
|
int i;
|
|
double s;
|
|
asm ("" : "=w" (s) : "0" (a[0]));
|
|
for (i=0;i<16;i++)
|
|
s = (s < a[i] ? s : a[i]);
|
|
|
|
return s;
|
|
}
|