[ZARCH] Update max/min functions
This commit is contained in:
+25
-26
@@ -55,7 +55,7 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"vleig %%v31,15,1 \n\t"
|
||||
"srlg %%r0,%2,5 \n\t"
|
||||
"xgr %%r1,%%r1 \n\t"
|
||||
"0: \n\t"
|
||||
"0: \n\t"
|
||||
"pfd 1, 1024(%%r1,%3) \n\t"
|
||||
|
||||
"vl %%v16,0(%%r1,%3) \n\t"
|
||||
@@ -67,10 +67,10 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"vl %%v22,96(%%r1,%3) \n\t"
|
||||
"vl %%v23,112(%%r1,%3) \n\t"
|
||||
|
||||
"vfchdb %%v4,%%v17,%%v16 \n\t"
|
||||
"vfchdb %%v5,%%v19,%%v18 \n\t"
|
||||
"vfchdb %%v6,%%v21,%%v20 \n\t"
|
||||
"vfchdb %%v7,%%v23,%%v22 \n\t"
|
||||
"vfchedb %%v4,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v5,%%v19,%%v18 \n\t"
|
||||
"vfchedb %%v6,%%v21,%%v20 \n\t"
|
||||
"vfchedb %%v7,%%v23,%%v22 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v4 \n\t"
|
||||
"vsel %%v4,%%v24,%%v25,%%v4 \n\t"
|
||||
"vsel %%v17,%%v18,%%v19,%%v5 \n\t"
|
||||
@@ -80,21 +80,21 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"vsel %%v19,%%v22,%%v23,%%v7 \n\t"
|
||||
"vsel %%v7,%%v30,%%v31,%%v7 \n\t"
|
||||
|
||||
"vfchdb %%v20,%%v17,%%v16 \n\t"
|
||||
"vfchdb %%v21,%%v19,%%v18 \n\t"
|
||||
"vfchedb %%v20,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v21,%%v19,%%v18 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v20 \n\t"
|
||||
"vsel %%v4,%%v4,%%v5,%%v20 \n\t"
|
||||
"vsel %%v17,%%v18,%%v19,%%v21 \n\t"
|
||||
"vsel %%v5,%%v6,%%v7,%%v21 \n\t"
|
||||
|
||||
"vfchdb %%v18,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v18,%%v17,%%v16 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v18 \n\t"
|
||||
"vsel %%v4,%%v4,%%v5,%%v18 \n\t"
|
||||
"vag %%v4,%%v4,%%v3 \n\t"
|
||||
|
||||
"vfchdb %%v5,%%v0,%%v16 \n\t"
|
||||
"vsel %%v0,%%v16,%%v0,%%v5 \n\t"
|
||||
"vsel %%v1,%%v4,%%v1,%%v5 \n\t"
|
||||
"vfchedb %%v5,%%v16,%%v0 \n\t"
|
||||
"vsel %%v0,%%v0,%%v16,%%v5 \n\t"
|
||||
"vsel %%v1,%%v1,%%v4,%%v5 \n\t"
|
||||
"vag %%v3,%%v3,%%v2 \n\t"
|
||||
|
||||
"vl %%v16,128(%%r1,%3) \n\t"
|
||||
@@ -106,10 +106,10 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"vl %%v22,224(%%r1,%3) \n\t"
|
||||
"vl %%v23,240(%%r1,%3) \n\t"
|
||||
|
||||
"vfchdb %%v4,%%v17,%%v16 \n\t"
|
||||
"vfchdb %%v5,%%v19,%%v18 \n\t"
|
||||
"vfchdb %%v6,%%v21,%%v20 \n\t"
|
||||
"vfchdb %%v7,%%v23,%%v22 \n\t"
|
||||
"vfchedb %%v4,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v5,%%v19,%%v18 \n\t"
|
||||
"vfchedb %%v6,%%v21,%%v20 \n\t"
|
||||
"vfchedb %%v7,%%v23,%%v22 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v4 \n\t"
|
||||
"vsel %%v4,%%v24,%%v25,%%v4 \n\t"
|
||||
"vsel %%v17,%%v18,%%v19,%%v5 \n\t"
|
||||
@@ -119,21 +119,21 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"vsel %%v19,%%v22,%%v23,%%v7 \n\t"
|
||||
"vsel %%v7,%%v30,%%v31,%%v7 \n\t"
|
||||
|
||||
"vfchdb %%v20,%%v17,%%v16 \n\t"
|
||||
"vfchdb %%v21,%%v19,%%v18 \n\t"
|
||||
"vfchedb %%v20,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v21,%%v19,%%v18 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v20 \n\t"
|
||||
"vsel %%v4,%%v4,%%v5,%%v20 \n\t"
|
||||
"vsel %%v17,%%v18,%%v19,%%v21 \n\t"
|
||||
"vsel %%v5,%%v6,%%v7,%%v21 \n\t"
|
||||
|
||||
"vfchdb %%v18,%%v17,%%v16 \n\t"
|
||||
"vfchedb %%v18,%%v17,%%v16 \n\t"
|
||||
"vsel %%v16,%%v16,%%v17,%%v18 \n\t"
|
||||
"vsel %%v4,%%v4,%%v5,%%v18 \n\t"
|
||||
"vag %%v4,%%v4,%%v3 \n\t"
|
||||
|
||||
"vfchdb %%v5,%%v0,%%v16 \n\t"
|
||||
"vsel %%v0,%%v16,%%v0,%%v5 \n\t"
|
||||
"vsel %%v1,%%v4,%%v1,%%v5 \n\t"
|
||||
"vfchedb %%v5,%%v16,%%v0 \n\t"
|
||||
"vsel %%v0,%%v0,%%v16,%%v5 \n\t"
|
||||
"vsel %%v1,%%v1,%%v4,%%v5 \n\t"
|
||||
"vag %%v3,%%v3,%%v2 \n\t"
|
||||
|
||||
"agfi %%r1, 256 \n\t"
|
||||
@@ -151,8 +151,8 @@ static BLASLONG idmin_kernel_32(BLASLONG n, FLOAT *x, FLOAT *min)
|
||||
"wfchdb %%v4,%%v0,%%v2 \n\t"
|
||||
"vsel %%v1,%%v3,%%v1,%%v4 \n\t"
|
||||
"vsel %%v0,%%v2,%%v0,%%v4 \n\t"
|
||||
"vlgvg %0,%%v1,0 \n\t"
|
||||
"std %%f0,%1 \n\t"
|
||||
"vlgvg %0,%%v1,0 \n\t"
|
||||
"2: \n\t"
|
||||
"nop "
|
||||
:"=r"(imin),"=m"(*min)
|
||||
@@ -197,12 +197,11 @@ BLASLONG CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x) {
|
||||
|
||||
} else {
|
||||
|
||||
min = 0;
|
||||
minf = x[0];
|
||||
i += inc_x;
|
||||
j++;
|
||||
|
||||
BLASLONG n1 = (n - 1) & -4;
|
||||
while ((j - 1) < n1) {
|
||||
BLASLONG n1 = n & -4;
|
||||
while (j < n1) {
|
||||
|
||||
if (x[i] < minf) {
|
||||
min = j;
|
||||
|
||||
Reference in New Issue
Block a user