atl_smm4x4x128_av.c
来自「基于Blas CLapck的.用过的人知道是干啥的」· C语言 代码 · 共 3,072 行 · 第 1/5 页
C
3,072 行
vmaddfp vC30, vA3, vB0, vC30 #if KB > 72 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 vmaddfp vC11, vA1, vB1, vC11 vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 72 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 72 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 72 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 #if KB > 72 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 72 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 72 lvx vA3, pA0, k3 #endif #if KB > 72 lvx vB3, pB0, k3 #endif#endif /* end K=64 block */#if KB > 68 #if KB > 76 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 76 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 76 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 76 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 76 lvx vb0, pB0, k0 #endif vmaddfp vC01, va0, vb1, vC01 vmaddfp vC11, va1, vb1, vC11 vmaddfp vC21, va2, vb1, vC21 vmaddfp vC31, va3, vb1, vC31 #if KB > 76 lvx vb1, pB0, k1 #endif vmaddfp vC02, va0, vb2, vC02 vmaddfp vC12, va1, vb2, vC12 vmaddfp vC22, va2, vb2, vC22 vmaddfp vC32, va3, vb2, vC32 #if KB > 76 lvx vb2, pB0, k2 #endif vmaddfp vC03, va0, vb3, vC03 #if KB > 76 lvx va0, pA0, k0 #endif vmaddfp vC13, va1, vb3, vC13 #if KB > 76 lvx va1, pA0, k1 #endif vmaddfp vC23, va2, vb3, vC23 #if KB > 76 lvx va2, pA0, k2 #endif vmaddfp vC33, va3, vb3, vC33 #if KB > 76 lvx va3, pA0, k3 #endif #if KB > 76 lvx vb3, pB0, k3 #endif#endif /* end K=68 block */#if KB > 72 #if KB > 80 addi k0, k0, 16 #endif vmaddfp vC00, vA0, vB0, vC00 #if KB > 80 addi k1, k1, 16 #endif vmaddfp vC10, vA1, vB0, vC10 #if KB > 80 addi k2, k2, 16 #endif vmaddfp vC20, vA2, vB0, vC20 #if KB > 80 addi k3, k3, 16 #endif vmaddfp vC30, vA3, vB0, vC30 #if KB > 80 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 #ifdef BETAX dcbt 0, pBETA, 0 #endif vmaddfp vC11, vA1, vB1, vC11 vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 80 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 80 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 80 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 #if KB > 80 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 80 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 80 lvx vA3, pA0, k3 #endif #if KB > 80 lvx vB3, pB0, k3 #endif#endif /* end K=72 block */#if KB > 76 #if KB > 84 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 84 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 84 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 84 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 84 lvx vb0, pB0, k0 #endif vmaddfp vC01, va0, vb1, vC01 vmaddfp vC11, va1, vb1, vC11 vmaddfp vC21, va2, vb1, vC21 vmaddfp vC31, va3, vb1, vC31 #if KB > 84 lvx vb1, pB0, k1 #endif vmaddfp vC02, va0, vb2, vC02 vmaddfp vC12, va1, vb2, vC12 vmaddfp vC22, va2, vb2, vC22 vmaddfp vC32, va3, vb2, vC32 #if KB > 84 lvx vb2, pB0, k2 #endif vmaddfp vC03, va0, vb3, vC03 #if KB > 84 lvx va0, pA0, k0 #endif vmaddfp vC13, va1, vb3, vC13 #if KB > 84 lvx va1, pA0, k1 #endif vmaddfp vC23, va2, vb3, vC23 #if KB > 84 lvx va2, pA0, k2 #endif vmaddfp vC33, va3, vb3, vC33 #if KB > 84 lvx va3, pA0, k3 #endif #if KB > 84 lvx vb3, pB0, k3 #endif#endif /* end K=76 block */#if KB > 80 #if KB > 88 addi k0, k0, 16 #endif vmaddfp vC00, vA0, vB0, vC00 #if KB > 88 addi k1, k1, 16 #endif vmaddfp vC10, vA1, vB0, vC10 #if KB > 88 addi k2, k2, 16 #endif vmaddfp vC20, vA2, vB0, vC20 #if KB > 88 addi k3, k3, 16 #endif vmaddfp vC30, vA3, vB0, vC30 #if KB > 88 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 vmaddfp vC11, vA1, vB1, vC11 vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 88 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 88 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 88 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 #if KB > 88 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 88 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 88 lvx vA3, pA0, k3 #endif #if KB > 88 lvx vB3, pB0, k3 #endif#endif /* end K=80 block */#if KB > 84 #if KB > 92 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 92 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 92 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 92 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 92 lvx vb0, pB0, k0 #endif vmaddfp vC01, va0, vb1, vC01 vmaddfp vC11, va1, vb1, vC11 vmaddfp vC21, va2, vb1, vC21 vmaddfp vC31, va3, vb1, vC31 #if KB > 92 lvx vb1, pB0, k1 #endif vmaddfp vC02, va0, vb2, vC02 vmaddfp vC12, va1, vb2, vC12 vmaddfp vC22, va2, vb2, vC22 vmaddfp vC32, va3, vb2, vC32 #if KB > 92 lvx vb2, pB0, k2 #endif vmaddfp vC03, va0, vb3, vC03 #if KB > 92 lvx va0, pA0, k0 #endif vmaddfp vC13, va1, vb3, vC13 #if KB > 92 lvx va1, pA0, k1 #endif vmaddfp vC23, va2, vb3, vC23 #if KB > 92 lvx va2, pA0, k2 #endif vmaddfp vC33, va3, vb3, vC33 #if KB > 92 lvx va3, pA0, k3 #endif #if KB > 92 lvx vb3, pB0, k3 #endif#endif /* end K=84 block */#if KB > 88 /* HERE HERE */ #if KB > 96 addi k0, k0, 16 #elif !defined(BETA0) && KB == 92 lvx va0, 0, pC0 #endif vmaddfp vC00, vA0, vB0, vC00 #if KB > 96 addi k1, k1, 16 #elif !defined(BETA0) && KB == 92 lvx va1, pC0, ldc #endif vmaddfp vC10, vA1, vB0, vC10 #if KB > 96 addi k2, k2, 16 #elif !defined(BETA0) && KB == 92 lvx va2, pC0, ldc2 #endif vmaddfp vC20, vA2, vB0, vC20 #if KB > 96 addi k3, k3, 16 #elif !defined(BETA0) && KB == 92 lvx va3, pC0, ldc3 #endif vmaddfp vC30, vA3, vB0, vC30 #if KB > 96 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 vmaddfp vC11, vA1, vB1, vC11 #if KB == 92 vmrglw vb2, vC00, vC10 // vb2 = {c0c, c1c, c0d, c1d} #endif vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 96 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 #if KB == 92 vmrghw vC00, vC00, vC10 // vC00 = {c0a, c1a, c0b, c1b} #endif vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 96 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 96 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 vmrglw vb3, vC20, vC30 // vb3 = {c2c, c3c, c2d, c3d} vmrghw vC20, vC20, vC30 // vC20 = {c2a, c3a, c2b, c3b} #if KB > 96 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 96 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 96 lvx vA3, pA0, k3 #endif #if KB > 96 lvx vB3, pB0, k3 #endif#endif /* end K=88 block */#if KB > 92 #if KB > 100 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 100 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 100 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 100 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 100 lvx vb0, pB0, k0 #endif vmaddfp vC01, va0, vb1, vC01 vmaddfp vC11, va1, vb1, vC11 vmaddfp vC21, va2, vb1, vC21 vmaddfp vC31, va3, vb1, vC31 #if KB > 100 lvx vb1, pB0, k1 #endif vmaddfp vC02, va0, vb2, vC02 vmaddfp vC12, va1, vb2, vC12 vmaddfp vC22, va2, vb2, vC22 vmaddfp vC32, va3, vb2, vC32 #if KB > 100 lvx vb2, pB0, k2 #endif vmaddfp vC03, va0, vb3, vC03 #if KB > 100 lvx va0, pA0, k0 #endif vmaddfp vC13, va1, vb3, vC13 #if KB > 100 lvx va1, pA0, k1 #endif vmaddfp vC23, va2, vb3, vC23 #if KB > 100 lvx va2, pA0, k2 #endif vmaddfp vC33, va3, vb3, vC33 #if KB > 100 lvx va3, pA0, k3 #endif #if KB > 100 lvx vb3, pB0, k3 #endif#endif /* end K=92 block */#if KB > 96 #if KB > 104 addi k0, k0, 16 #endif vmaddfp vC00, vA0, vB0, vC00 #if KB > 104 addi k1, k1, 16 #endif vmaddfp vC10, vA1, vB0, vC10 #if KB > 104 addi k2, k2, 16 #endif vmaddfp vC20, vA2, vB0, vC20 #if KB > 104 addi k3, k3, 16 #endif vmaddfp vC30, vA3, vB0, vC30 #if KB > 104 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 vmaddfp vC11, vA1, vB1, vC11 vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 104 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 104 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 104 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 #if KB > 104 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 104 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 104 lvx vA3, pA0, k3 #endif #if KB > 104 lvx vB3, pB0, k3 #endif#endif /* end K=96 block */#if KB > 100 #if KB > 108 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 108 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 108 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 108 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 108 lvx vb0, pB0, k0 #endif vmaddfp vC01, va0, vb1, vC01 vmaddfp vC11, va1, vb1, vC11 vmaddfp vC21, va2, vb1, vC21 vmaddfp vC31, va3, vb1, vC31 #if KB > 108 lvx vb1, pB0, k1 #endif vmaddfp vC02, va0, vb2, vC02 vmaddfp vC12, va1, vb2, vC12 vmaddfp vC22, va2, vb2, vC22 vmaddfp vC32, va3, vb2, vC32 #if KB > 108 lvx vb2, pB0, k2 #endif vmaddfp vC03, va0, vb3, vC03 #if KB > 108 lvx va0, pA0, k0 #endif vmaddfp vC13, va1, vb3, vC13 #if KB > 108 lvx va1, pA0, k1 #endif vmaddfp vC23, va2, vb3, vC23 #if KB > 108 lvx va2, pA0, k2 #endif vmaddfp vC33, va3, vb3, vC33 #if KB > 108 lvx va3, pA0, k3 #endif #if KB > 108 lvx vb3, pB0, k3 #endif#endif /* end K=100 block */#if KB > 104 #if KB > 112 addi k0, k0, 16 #endif vmaddfp vC00, vA0, vB0, vC00 #if KB > 112 addi k1, k1, 16 #endif vmaddfp vC10, vA1, vB0, vC10 #if KB > 112 addi k2, k2, 16 #endif vmaddfp vC20, vA2, vB0, vC20 #if KB > 112 addi k3, k3, 16 #endif vmaddfp vC30, vA3, vB0, vC30 #if KB > 112 lvx vB0, pB0, k0 #endif vmaddfp vC01, vA0, vB1, vC01 vmaddfp vC11, vA1, vB1, vC11 vmaddfp vC21, vA2, vB1, vC21 vmaddfp vC31, vA3, vB1, vC31 #if KB > 112 lvx vB1, pB0, k1 #endif vmaddfp vC02, vA0, vB2, vC02 vmaddfp vC12, vA1, vB2, vC12 vmaddfp vC22, vA2, vB2, vC22 vmaddfp vC32, vA3, vB2, vC32 #if KB > 112 lvx vB2, pB0, k2 #endif vmaddfp vC03, vA0, vB3, vC03 #if KB > 112 lvx vA0, pA0, k0 #endif vmaddfp vC13, vA1, vB3, vC13 #if KB > 112 lvx vA1, pA0, k1 #endif vmaddfp vC23, vA2, vB3, vC23 #if KB > 112 lvx vA2, pA0, k2 #endif vmaddfp vC33, vA3, vB3, vC33 #if KB > 112 lvx vA3, pA0, k3 #endif #if KB > 112 lvx vB3, pB0, k3 #endif#endif /* end K=104 block */#if KB > 108 #if KB > 116 addi k0, k0, 16 #endif vmaddfp vC00, va0, vb0, vC00 #if KB > 116 addi k1, k1, 16 #endif vmaddfp vC10, va1, vb0, vC10 #if KB > 116 addi k2, k2, 16 #endif vmaddfp vC20, va2, vb0, vC20 #if KB > 116 addi k3, k3, 16 #endif vmaddfp vC30, va3, vb0, vC30 #if KB > 116
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?