Merge pull request #3025 from TiredNotTear/develop

MIPS: Fix two bugs
This commit is contained in:
Martin Kroeker 2020-12-08 09:39:27 +01:00 committed by GitHub
commit 7f11e33e8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 98 additions and 21 deletions

View File

@ -56,11 +56,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#if !defined(XCONJ) #if !defined(XCONJ)
#define OP0 += #define OP0 +=
#define OP1 -= #define OP1 -=
#define OP2 -= #define OP2 +=
#else #else
#define OP0 -= #define OP0 -=
#define OP1 -= #define OP1 -=
#define OP2 += #define OP2 -=
#endif #endif
#endif #endif

View File

@ -32,14 +32,26 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#undef OP1 #undef OP1
#undef OP2 #undef OP2
#if ( !defined(CONJ) && !defined(XCONJ) ) || ( defined(CONJ) && defined(XCONJ) ) #if !defined(CONJ)
#define OP0 -= #if !defined(XCONJ)
#define OP1 += #define OP0 -=
#define OP2 += #define OP1 +=
#define OP2 +=
#else
#define OP0 +=
#define OP1 +=
#define OP2 -=
#endif
#else #else
#define OP0 += #if !defined(XCONJ)
#define OP1 += #define OP0 +=
#define OP2 -= #define OP1 -=
#define OP2 +=
#else
#define OP0 -=
#define OP1 -=
#define OP2 -=
#endif
#endif #endif
#define CGEMV_T_8x4() \ #define CGEMV_T_8x4() \

View File

@ -184,7 +184,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3,
} }
} }
} }
else else if ((inc_x != 0) && (inc_y != 0))
{ {
for (i = (n >> 3); i--;) for (i = (n >> 3); i--;)
{ {
@ -248,6 +248,32 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3,
} }
} }
} }
else
{
if (inc_x == inc_y)
{
if (n & 1)
{
x0 = *srcx;
*srcx = *srcy;
*srcy = x0;
}
else
return (0);
}
else
{
BLASLONG ix = 0, iy = 0;
while (i < n)
{
x0 = srcx[ix];
srcx[ix] = srcy[iy];
srcy[iy] = x0;
ix += inc_x;
iy += inc_y;
i++;
}
}
}
return (0); return (0);
} }

View File

@ -198,7 +198,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3,
} }
} }
} }
else else if ((inc_x != 0) && (inc_y != 0))
{ {
for (i = (n >> 3); i--;) for (i = (n >> 3); i--;)
{ {
@ -262,6 +262,33 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT dummy3,
} }
} }
} }
else
{
if (inc_x == inc_y)
{
if (n & 1)
{
x0 = *srcx;
*srcx = *srcy;
*srcy = x0;
}
else
return (0);
}
else
{
BLASLONG ix = 0, iy = 0;
while (i < n)
{
x0 = srcx[ix];
srcx[ix] = srcy[iy];
srcy[iy] = x0;
ix += inc_x;
iy += inc_y;
i++;
}
}
}
return (0); return (0);
} }

View File

@ -56,11 +56,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#if !defined(XCONJ) #if !defined(XCONJ)
#define OP0 += #define OP0 +=
#define OP1 -= #define OP1 -=
#define OP2 -= #define OP2 +=
#else #else
#define OP0 -= #define OP0 -=
#define OP1 -= #define OP1 -=
#define OP2 += #define OP2 -=
#endif #endif
#endif #endif

View File

@ -34,14 +34,26 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#undef OP3 #undef OP3
#undef OP4 #undef OP4
#if ( !defined(CONJ) && !defined(XCONJ) ) || ( defined(CONJ) && defined(XCONJ) ) #if !defined(CONJ)
#define OP0 -= #if !defined(XCONJ)
#define OP1 += #define OP0 -=
#define OP2 += #define OP1 +=
#define OP2 +=
#else
#define OP0 +=
#define OP1 +=
#define OP2 -=
#endif
#else #else
#define OP0 += #if !defined(XCONJ)
#define OP1 += #define OP0 +=
#define OP2 -= #define OP1 -=
#define OP2 +=
#else
#define OP0 -=
#define OP1 -=
#define OP2 -=
#endif
#endif #endif
#define ZGEMV_T_8x1() \ #define ZGEMV_T_8x1() \