atl_smm10x1x120_sse.c
来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 1,411 行 · 第 1/2 页
C
1,411 行
movaps 224-128(pB0), rB0 movaps 224-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 224-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 224-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 224-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 224-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 224-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 224-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 224-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 224-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 224-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 60 MY_ALIGN movaps 240-128(pB0), rB0 movaps 240-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 240-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 240-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 240-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 240-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 240-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 240-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 240-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 240-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 240-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 64 MY_ALIGN movaps 256-128(pB0), rB0 movaps 256-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 256-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 256-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 256-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 256-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 256-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 256-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 256-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 256-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 256-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 68 MY_ALIGN movaps 272-128(pB0), rB0 movaps 272-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 272-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 272-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 272-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 272-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 272-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 272-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 272-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 272-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 272-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 72 MY_ALIGN movaps 288-128(pB0), rB0 movaps 288-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 288-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 288-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 288-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 288-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 288-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 288-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 288-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 288-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 288-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 76 MY_ALIGN movaps 304-128(pB0), rB0 movaps 304-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 304-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 304-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 304-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 304-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 304-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 304-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 304-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 304-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 304-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 80 MY_ALIGN movaps 320-128(pB0), rB0 movaps 320-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 320-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 320-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 320-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 320-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 320-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 320-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 320-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 320-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 320-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 84 MY_ALIGN movaps 336-128(pB0), rB0 movaps 336-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 336-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 336-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 336-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 336-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 336-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 336-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 336-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 336-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 336-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 88 MY_ALIGN movaps 352-128(pB0), rB0 movaps 352-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 352-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 352-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 352-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 352-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 352-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 352-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 352-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 352-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 352-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 92 MY_ALIGN movaps 368-128(pB0), rB0 movaps 368-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 368-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 368-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 368-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 368-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 368-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 368-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 368-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 368-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 368-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 96 MY_ALIGN movaps 384-128(pB0), rB0 movaps 384-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 384-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 384-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 384-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 384-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 384-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 384-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 384-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 384-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 384-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 100 MY_ALIGN movaps 400-128(pB0), rB0 movaps 400-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 400-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 400-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 400-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 400-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 400-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 400-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 400-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 400-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 400-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 104 MY_ALIGN movaps 416-128(pB0), rB0 movaps 416-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 416-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 416-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 416-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 416-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 416-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 416-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 416-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 416-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 416-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 108 MY_ALIGN movaps 432-128(pB0), rB0 movaps 432-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 432-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 432-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 432-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 432-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 432-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 432-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 432-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 432-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 432-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 112 MY_ALIGN movaps 448-128(pB0), rB0 movaps 448-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 448-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 448-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 448-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 448-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 448-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 448-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 448-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 448-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 448-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 116 MY_ALIGN movaps 464-128(pB0), rB0 movaps 464-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 464-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 464-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 464-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 464-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 464-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 464-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 464-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 464-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 464-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 120 MY_ALIGN movaps 480-128(pB0), rB0 movaps 480-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 480-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 480-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 480-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 480-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 480-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 480-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 480-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 480-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 480-128(pA7,lda,2), rB0 addps rB0,rC9#endif#if KB > 124 MY_ALIGN movaps 496-128(pB0), rB0 movaps 496-128(pA2,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC0 movaps 496-128(pA2,nlda), rA0 mulps rB0,rA0 addps rA0,rC1 movaps 496-128(pA2), rA0 mulps rB0,rA0 addps rA0,rC2 movaps 496-128(pA2,lda), rA0 mulps rB0,rA0 addps rA0,rC3 movaps 496-128(pA2,lda,2), rA0 mulps rB0,rA0 addps rA0,rC4 movaps 496-128(pA7,nlda,2), rA0 mulps rB0,rA0 addps rA0,rC5 movaps 496-128(pA7,nlda), rA0 mulps rB0,rA0 addps rA0,rC6 movaps 496-128(pA7), rA0 mulps rB0,rA0 addps rA0,rC7 movaps 496-128(pA7,lda), rA0 mulps rB0,rA0 addps rA0,rC8 mulps 496-128(pA7,lda,2), rB0 addps rB0,rC9#endif/* * End KLOOP */ /* rCa = XX c1 XX c0 */ /* rCc = XX c3 XX c2 */ /* rCb = XX c5 XX c4 */#if defined(SCPLX) && !defined(BETA0) movups 48(pC0), rCc /* rCc = XX c7 XX c6 */#endif haddps rC1, rC0 /* rC0 = c1cd c1ab c0cd c0ab */#ifdef BETAX mulps rBETA, rCa#endif#if defined(SCPLX) && !defined(BETA0) shufps $0x88, rCc, rCb /* rCb = c7 c6 c5 c4 */#endif#if defined(SCPLX) && !defined(BETA0) movups 64(pC0), rCc /* rCc = XX c9 XX c8 */#endif haddps rC3, rC2 /* rC2 = c3cd c3ab c2cd c2ab */#if defined(SCPLX) && !defined(BETA0) shufps $0x88, rCc, rCc /* rCc = c9 c8 c9 c8 */#endif#ifdef BETAX mulps rBETA, rCb#endif#ifdef BETAX mulps rBETA, rCc#endif haddps rC5, rC4 /* rC4 = c5cd c5ab c4cd c4ab */ haddps rC7, rC6 /* rC6 = c7cd c7ab c6cd c6ab */ haddps rC9, rC8 /* rC8 = c9cd c9ab c8cd c8ab */ haddps rC2, rC0 /* rC0 = c3abcd c2abcd c1abcd c0abcd */ #ifndef BETA0 addps rCa, rC0 #endif haddps rC6, rC4 /* rC4 = c7abcd c6abcd c5abcd c4abcd */ #ifndef BETA0 addps rCb, rC4 #endif haddps rC8, rC8 /* rC8 = c9abcd c8abcd c9abcd c8abcd */ #ifndef BETA0 addps rCc, rC8 #endif#ifdef SCPLX/* pshufd $0b0111 0001 */ pshufd $0x71, rC0, rCa /* rCa = c1 c3 c0 c1 */ movss rC0, (pC0) pshufd $0x71, rC4, rCb /* rCb = c5 c7 c4 c5 */ movss rC4, 4*8(pC0) pshufd $0x71, rC8, rCc /* rCc = c9 c9 c8 c9 */ movss rC8, 8*8(pC0) movhlps rC0, rC0 /* rC0 = c3 c2 c3 c2 */ movss rCa, 1*8(pC0) movhlps rC4, rC4 /* rC4 = c7 c6 c7 c6 */ movss rCb, 5*8(pC0) movhlps rCa, rCa /* rCa = c1 c3 c1 c3 */ movss rCc, 9*8(pC0) movhlps rCb, rCb /* rCb = c5 c7 c5 c7 */ movss rC0, 2*8(pC0) movss rC4, 6*8(pC0) movss rCa, 3*8(pC0) movss rCb, 7*8(pC0)#else movups rC0, (pC0) movups rC4, 16(pC0) pshufd $0xE5, rC8, rC9/* pshufd $0b11100101, rC8, rC9 */ movss rC8, 32(pC0) movss rC9, 36(pC0)#endif add incAm, pA2 add incAm, pA7 addq $10*CMUL(4), pC0 subq $10, II jnz MLOOP sub incAn, pA2 sub incAn, pA7 add incCn, pC0 add ldb, pB0 sub $1, JJ jnz NLOOP/* * Restore regs & return (DONE) */ movq -8(%rsp), %rbp movq -16(%rsp), %rbx movq -24(%rsp), %r12 movq -32(%rsp), %r13 movq -40(%rsp), %r14/* movq -48(%rsp), %r15 */ ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?