qgemv_t.s
来自「Optimized GotoBLAS libraries」· S 代码 · 共 1,271 行 · 第 1/2 页
S
1,271 行
STFD [YY1] = f35 add YY1 = YY1, INCY5 ;; STFD [YY2] = f36 add YY2 = YY2, INCY ;; STFD [YY2] = f37 add YY2 = YY2, INCY ;; STFD [YY2] = f38 add YY2 = YY2, INCY ;; STFD [YY2] = f39 add YY2 = YY2, INCY5 ;; adds J = -1, J ;; cmp.lt p6, p0 = 0, J (p6) br.cond.dptk .L11 ;; .align 16.L20: tbit.z p6, p0 = N, 2 ;; (p6) br.cond.dpnt .L30 ;; mov AO1 = A adds AO2 = 1 * SIZE, A adds AO3 = 2 * SIZE, A adds AO4 = 3 * SIZE, A adds AO5 = 4 * SIZE, A adds AO6 = 5 * SIZE, A adds AO7 = 6 * SIZE, A adds AO8 = 7 * SIZE, A shladd A = LDA, 2, A ;; shladd LDA7M8 = LDA, 2, r0 ;; sub LDA7M8 = LDA, LDA7M8 ;; adds LDA7M8 = 8 * SIZE, LDA7M8 ;; mov f8 = f0 mov f9 = f0 mov f10 = f0 mov f11 = f0 mov f12 = f0 mov f13 = f0 mov f14 = f0 mov f15 = f0 mov pr.rot= 0 shr I = M, 3 mov ar.ec = 2 ;; mov X1 = BUFFER adds X2 = 2 * SIZE, BUFFER ;; cmp.eq p16, p0 = r0, r0 ;; adds I = -1, I ;; mov ar.lc = I cmp.eq p6, p0 = -1, I (p6) br.cond.dpnt .L25 ;; .align 16.L22: (p16) LDFD f32 = [AO1], LDA (p16) LDFD f34 = [AO3], LDA (p16) LDFD f36 = [AO5], LDA (p16) LDFD f38 = [AO7], LDA ;; (p16) LDFD f33 = [AO2], LDA (p16) LDFD f35 = [AO4], LDA (p16) LDFD f37 = [AO6], LDA (p16) LDFD f39 = [AO8], LDA ;; (p16) LDFD f40 = [AO1], LDA (p16) LDFD f42 = [AO3], LDA (p16) LDFD f44 = [AO5], LDA (p16) LDFD f46 = [AO7], LDA ;; (p16) LDFD f41 = [AO2], LDA (p16) LDFD f43 = [AO4], LDA (p16) LDFD f45 = [AO6], LDA (p16) LDFD f47 = [AO8], LDA ;; (p16) LDFD f48 = [AO1], LDA (p16) LDFD f50 = [AO3], LDA (p16) LDFD f52 = [AO5], LDA (p16) LDFD f54 = [AO7], LDA ;; (p16) LDFD f49 = [AO2], LDA (p16) LDFD f51 = [AO4], LDA (p16) LDFD f53 = [AO6], LDA (p16) LDFD f55 = [AO8], LDA ;; (p16) LDFD f56 = [AO1], LDA7M8 (p16) LDFD f58 = [AO3], LDA7M8 (p16) LDFD f60 = [AO5], LDA7M8 (p16) LDFD f62 = [AO7], LDA7M8 ;; (p16) LDFD f57 = [AO2], LDA7M8 (p16) LDFD f59 = [AO4], LDA7M8 (p16) LDFD f61 = [AO6], LDA7M8 (p16) LDFD f63 = [AO8], LDA7M8 ;; (p16) LDFD f96 = [X1], 1 * SIZE (p16) LDFD f98 = [X2], 1 * SIZE ;; (p16) LDFD f97 = [X1], 3 * SIZE (p16) LDFD f99 = [X2], 3 * SIZE ;; (p16) LDFD f100 = [X1], 1 * SIZE (p16) LDFD f102 = [X2], 1 * SIZE ;; (p16) LDFD f101 = [X1], 3 * SIZE (p16) LDFD f103 = [X2], 3 * SIZE ;; (p16) FMA f8 = f96, f32, f8 (p16) FMA f9 = f96, f40, f9 (p16) FMA f10 = f96, f48, f10 (p16) FMA f11 = f96, f56, f11 ;; (p16) FMA f8 = f97, f33, f8 (p16) FMA f9 = f97, f41, f9 (p16) FMA f10 = f97, f49, f10 (p16) FMA f11 = f97, f57, f11 ;; (p16) FMA f8 = f98, f34, f8 (p16) FMA f9 = f98, f42, f9 (p16) FMA f10 = f98, f50, f10 (p16) FMA f11 = f98, f58, f11 ;; (p16) FMA f8 = f99, f35, f8 (p16) FMA f9 = f99, f43, f9 (p16) FMA f10 = f99, f51, f10 (p16) FMA f11 = f99, f59, f11 ;; (p16) FMA f8 = f100, f36, f8 (p16) FMA f9 = f100, f44, f9 (p16) FMA f10 = f100, f52, f10 (p16) FMA f11 = f100, f60, f11 ;; (p16) FMA f8 = f101, f37, f8 (p16) FMA f9 = f101, f45, f9 (p16) FMA f10 = f101, f53, f10 (p16) FMA f11 = f101, f61, f11 ;; (p16) FMA f8 = f102, f38, f8 (p16) FMA f9 = f102, f46, f9 (p16) FMA f10 = f102, f54, f10 (p16) FMA f11 = f102, f62, f11 ;; (p16) FMA f8 = f103, f39, f8 (p16) FMA f9 = f103, f47, f9 (p16) FMA f10 = f103, f55, f10 (p16) FMA f11 = f103, f63, f11 br.ctop.sptk.few .L22 ;; .align 16.L25: tbit.nz p13, p11 = M, 2 tbit.nz p14, p12 = M, 1 ;; { .mmi (p11) adds AO5 = - 4 * SIZE, AO5 } { .mbb (p11) adds AO7 = - 4 * SIZE, AO7 } ;; { .mmi (p13) LDFD f32 = [AO1], LDA (p13) LDFD f34 = [AO3], LDA tbit.nz p15, p0 = M, 0 } { .mmi (p14) LDFD f36 = [AO5], LDA (p11) adds AO6 = - 4 * SIZE, AO6 (p12) adds AO7 = - 2 * SIZE, AO7 } ;; (p13) LDFD f33 = [AO2], LDA (p13) LDFD f35 = [AO4], LDA (p14) LDFD f37 = [AO6], LDA (p15) LDFD f38 = [AO7], LDA ;; (p13) LDFD f40 = [AO1], LDA (p13) LDFD f42 = [AO3], LDA (p14) LDFD f44 = [AO5], LDA (p15) LDFD f46 = [AO7], LDA ;; (p13) LDFD f41 = [AO2], LDA (p13) LDFD f43 = [AO4], LDA (p14) LDFD f45 = [AO6], LDA ;; (p13) LDFD f48 = [AO1], LDA (p13) LDFD f50 = [AO3], LDA (p14) LDFD f52 = [AO5], LDA (p15) LDFD f54 = [AO7], LDA ;; (p13) LDFD f49 = [AO2], LDA (p13) LDFD f51 = [AO4], LDA (p14) LDFD f53 = [AO6], LDA ;; (p13) LDFD f56 = [AO1] (p13) LDFD f58 = [AO3] (p14) LDFD f60 = [AO5] (p15) LDFD f62 = [AO7] ;; (p13) LDFD f57 = [AO2] (p13) LDFD f59 = [AO4] (p14) LDFD f61 = [AO6] ;; (p13) LDFD f96 = [X1], 1 * SIZE (p13) LDFD f98 = [X2], 1 * SIZE ;; (p13) LDFD f97 = [X1], 3 * SIZE (p13) LDFD f99 = [X2], 3 * SIZE ;; (p14) LDFD f100 = [X1], 1 * SIZE ;; (p14) LDFD f101 = [X1], 1 * SIZE ;; (p15) LDFD f102 = [X1], 1 * SIZE ;; (p13) FMA f8 = f96, f32, f8 (p13) FMA f9 = f96, f40, f9 (p13) FMA f10 = f96, f48, f10 (p13) FMA f11 = f96, f56, f11 ;; (p13) FMA f8 = f97, f33, f8 (p13) FMA f9 = f97, f41, f9 (p13) FMA f10 = f97, f49, f10 (p13) FMA f11 = f97, f57, f11 ;; (p13) FMA f8 = f98, f34, f8 (p13) FMA f9 = f98, f42, f9 (p13) FMA f10 = f98, f50, f10 (p13) FMA f11 = f98, f58, f11 ;; (p13) FMA f8 = f99, f35, f8 (p13) FMA f9 = f99, f43, f9 (p13) FMA f10 = f99, f51, f10 (p13) FMA f11 = f99, f59, f11 ;; (p14) FMA f8 = f100, f36, f8 (p14) FMA f9 = f100, f44, f9 (p14) FMA f10 = f100, f52, f10 (p14) FMA f11 = f100, f60, f11 ;; (p14) FMA f8 = f101, f37, f8 (p14) FMA f9 = f101, f45, f9 (p14) FMA f10 = f101, f53, f10 (p14) FMA f11 = f101, f61, f11 ;; (p15) FMA f8 = f102, f38, f8 (p15) FMA f9 = f102, f46, f9 (p15) FMA f10 = f102, f54, f10 (p15) FMA f11 = f102, f62, f11 ;; LDFD f32 = [Y1], INCY ;; LDFD f33 = [Y1], INCY ;; LDFD f34 = [Y1], INCY ;; LDFD f35 = [Y1], INCY ;; FMA f32 = ALPHA, f8, f32 FMA f33 = ALPHA, f9, f33 FMA f34 = ALPHA, f10, f34 FMA f35 = ALPHA, f11, f35 ;; STFD [YY1] = f32 add YY1 = YY1, INCY ;; STFD [YY1] = f33 add YY1 = YY1, INCY ;; STFD [YY1] = f34 add YY1 = YY1, INCY ;; STFD [YY1] = f35 add YY1 = YY1, INCY ;; .align 16.L30: tbit.z p6, p0 = N, 1 ;; (p6) br.cond.dpnt .L40 ;; mov AO1 = A adds AO2 = 1 * SIZE, A adds AO3 = 2 * SIZE, A adds AO4 = 3 * SIZE, A adds AO5 = 4 * SIZE, A adds AO6 = 5 * SIZE, A adds AO7 = 6 * SIZE, A adds AO8 = 7 * SIZE, A shladd A = LDA, 1, A ;; shladd LDA7M8 = LDA, 1, r0 ;; sub LDA7M8 = LDA, LDA7M8 ;; adds LDA7M8 = 8 * SIZE, LDA7M8 ;; mov f8 = f0 mov f9 = f0 mov f10 = f0 mov f11 = f0 mov f12 = f0 mov f13 = f0 mov f14 = f0 mov f15 = f0 mov pr.rot= 0 shr I = M, 3 mov ar.ec = 2 ;; mov X1 = BUFFER adds X2 = 2 * SIZE, BUFFER ;; cmp.eq p16, p0 = r0, r0 ;; adds I = -1, I ;; mov ar.lc = I cmp.eq p6, p0 = -1, I (p6) br.cond.dpnt .L35 ;; .align 16.L32: (p16) LDFD f32 = [AO1], LDA (p16) LDFD f34 = [AO3], LDA (p16) LDFD f36 = [AO5], LDA (p16) LDFD f38 = [AO7], LDA ;; (p16) LDFD f33 = [AO2], LDA (p16) LDFD f35 = [AO4], LDA (p16) LDFD f37 = [AO6], LDA (p16) LDFD f39 = [AO8], LDA ;; (p16) LDFD f40 = [AO1], LDA7M8 (p16) LDFD f42 = [AO3], LDA7M8 (p16) LDFD f44 = [AO5], LDA7M8 (p16) LDFD f46 = [AO7], LDA7M8 ;; (p16) LDFD f41 = [AO2], LDA7M8 (p16) LDFD f43 = [AO4], LDA7M8 (p16) LDFD f45 = [AO6], LDA7M8 (p16) LDFD f47 = [AO8], LDA7M8 ;; (p16) LDFD f96 = [X1], 1 * SIZE (p16) LDFD f98 = [X2], 1 * SIZE ;; (p16) LDFD f97 = [X1], 3 * SIZE (p16) LDFD f99 = [X2], 3 * SIZE ;; (p16) LDFD f100 = [X1], 1 * SIZE (p16) LDFD f102 = [X2], 1 * SIZE ;; (p16) LDFD f101 = [X1], 3 * SIZE (p16) LDFD f103 = [X2], 3 * SIZE ;; (p16) FMA f8 = f96, f32, f8 (p16) FMA f9 = f96, f40, f9 ;; (p16) FMA f8 = f97, f33, f8 (p16) FMA f9 = f97, f41, f9 ;; (p16) FMA f8 = f98, f34, f8 (p16) FMA f9 = f98, f42, f9 ;; (p16) FMA f8 = f99, f35, f8 (p16) FMA f9 = f99, f43, f9 ;; (p16) FMA f8 = f100, f36, f8 (p16) FMA f9 = f100, f44, f9 ;; (p16) FMA f8 = f101, f37, f8 (p16) FMA f9 = f101, f45, f9 ;; (p16) FMA f8 = f102, f38, f8 (p16) FMA f9 = f102, f46, f9 ;; (p16) FMA f8 = f103, f39, f8 (p16) FMA f9 = f103, f47, f9 br.ctop.sptk.few .L32 ;; .align 16.L35: tbit.nz p13, p11 = M, 2 tbit.nz p14, p12 = M, 1 ;; { .mmi (p11) adds AO5 = - 4 * SIZE, AO5 } { .mbb (p11) adds AO7 = - 4 * SIZE, AO7 } ;; { .mmi (p13) LDFD f32 = [AO1], LDA (p13) LDFD f34 = [AO3], LDA tbit.nz p15, p0 = M, 0 } { .mmi (p14) LDFD f36 = [AO5], LDA (p11) adds AO6 = - 4 * SIZE, AO6 (p12) adds AO7 = - 2 * SIZE, AO7 } ;; (p13) LDFD f33 = [AO2], LDA (p13) LDFD f35 = [AO4], LDA (p14) LDFD f37 = [AO6], LDA (p15) LDFD f38 = [AO7], LDA ;; (p13) LDFD f40 = [AO1] (p13) LDFD f42 = [AO3] (p14) LDFD f44 = [AO5] (p15) LDFD f46 = [AO7] ;; (p13) LDFD f41 = [AO2] (p13) LDFD f43 = [AO4] (p14) LDFD f45 = [AO6] ;; (p13) LDFD f96 = [X1], 1 * SIZE (p13) LDFD f98 = [X2], 1 * SIZE ;; (p13) LDFD f97 = [X1], 3 * SIZE (p13) LDFD f99 = [X2], 3 * SIZE ;; (p14) LDFD f100 = [X1], 1 * SIZE ;; (p14) LDFD f101 = [X1], 1 * SIZE ;; (p15) LDFD f102 = [X1], 1 * SIZE ;; (p13) FMA f8 = f96, f32, f8 (p13) FMA f9 = f96, f40, f9 ;; (p13) FMA f8 = f97, f33, f8 (p13) FMA f9 = f97, f41, f9 ;; (p13) FMA f8 = f98, f34, f8 (p13) FMA f9 = f98, f42, f9 ;; (p13) FMA f8 = f99, f35, f8 (p13) FMA f9 = f99, f43, f9 ;; (p14) FMA f8 = f100, f36, f8 (p14) FMA f9 = f100, f44, f9 ;; (p14) FMA f8 = f101, f37, f8 (p14) FMA f9 = f101, f45, f9 ;; (p15) FMA f8 = f102, f38, f8 (p15) FMA f9 = f102, f46, f9 ;; LDFD f32 = [Y1], INCY ;; LDFD f33 = [Y1], INCY ;; FMA f32 = ALPHA, f8, f32 FMA f33 = ALPHA, f9, f33 ;; STFD [YY1] = f32 add YY1 = YY1, INCY ;; STFD [YY1] = f33 add YY1 = YY1, INCY ;; .align 16.L40: tbit.z p6, p0 = N, 0 ;; (p6) br.cond.dpnt .L999 ;; mov AO1 = A adds AO2 = 1 * SIZE, A adds AO3 = 2 * SIZE, A adds AO4 = 3 * SIZE, A adds AO5 = 4 * SIZE, A adds AO6 = 5 * SIZE, A adds AO7 = 6 * SIZE, A adds AO8 = 7 * SIZE, A add A = LDA, A ;; mov f8 = f0 mov f9 = f0 mov f10 = f0 mov f11 = f0 mov f12 = f0 mov f13 = f0 mov f14 = f0 mov f15 = f0 mov pr.rot= 0 shr I = M, 3 mov ar.ec = 2 ;; mov X1 = BUFFER adds X2 = 2 * SIZE, BUFFER ;; cmp.eq p16, p0 = r0, r0 ;; adds I = -1, I ;; mov ar.lc = I cmp.eq p6, p0 = -1, I (p6) br.cond.dpnt .L45 ;; .align 16.L42: (p16) LDFD f32 = [AO1], 8 * SIZE (p16) LDFD f34 = [AO3], 8 * SIZE (p16) LDFD f36 = [AO5], 8 * SIZE (p16) LDFD f38 = [AO7], 8 * SIZE ;; (p16) LDFD f33 = [AO2], 8 * SIZE (p16) LDFD f35 = [AO4], 8 * SIZE (p16) LDFD f37 = [AO6], 8 * SIZE (p16) LDFD f39 = [AO8], 8 * SIZE ;; (p16) LDFD f96 = [X1], 1 * SIZE (p16) LDFD f98 = [X2], 1 * SIZE ;; (p16) LDFD f97 = [X1], 3 * SIZE (p16) LDFD f99 = [X2], 3 * SIZE ;; (p16) LDFD f100 = [X1], 1 * SIZE (p16) LDFD f102 = [X2], 1 * SIZE ;; (p16) LDFD f101 = [X1], 3 * SIZE (p16) LDFD f103 = [X2], 3 * SIZE ;; (p16) FMA f8 = f96, f32, f8 ;; (p16) FMA f8 = f97, f33, f8 ;; (p16) FMA f8 = f98, f34, f8 ;; (p16) FMA f8 = f99, f35, f8 ;; (p16) FMA f8 = f100, f36, f8 ;; (p16) FMA f8 = f101, f37, f8 ;; (p16) FMA f8 = f102, f38, f8 ;; (p16) FMA f8 = f103, f39, f8 br.ctop.sptk.few .L42 ;; .align 16.L45: tbit.nz p13, p11 = M, 2 tbit.nz p14, p12 = M, 1 ;; { .mmi (p11) adds AO5 = - 4 * SIZE, AO5 } { .mbb (p11) adds AO7 = - 4 * SIZE, AO7 } ;; { .mmi (p13) LDFD f32 = [AO1] (p13) LDFD f34 = [AO3] tbit.nz p15, p0 = M, 0 } { .mmi (p14) LDFD f36 = [AO5] (p11) adds AO6 = - 4 * SIZE, AO6 (p12) adds AO7 = - 2 * SIZE, AO7 } ;; (p13) LDFD f33 = [AO2] (p13) LDFD f35 = [AO4] (p14) LDFD f37 = [AO6] (p15) LDFD f38 = [AO7] ;; (p13) LDFD f96 = [X1], 1 * SIZE (p13) LDFD f98 = [X2], 1 * SIZE ;; (p13) LDFD f97 = [X1], 3 * SIZE (p13) LDFD f99 = [X2], 3 * SIZE ;; (p14) LDFD f100 = [X1], 1 * SIZE ;; (p14) LDFD f101 = [X1], 1 * SIZE ;; (p15) LDFD f102 = [X1], 1 * SIZE ;; (p13) FMA f8 = f96, f32, f8 ;; (p13) FMA f8 = f97, f33, f8 ;; (p13) FMA f8 = f98, f34, f8 ;; (p13) FMA f8 = f99, f35, f8 ;; (p14) FMA f8 = f100, f36, f8 ;; (p14) FMA f8 = f101, f37, f8 ;; (p15) FMA f8 = f102, f38, f8 ;; LDFD f32 = [Y1], INCY ;; FMA f32 = ALPHA, f8, f32 ;; STFD [YY1] = f32 .align 16.L999: mov ar.lc = ARLC mov pr = PR, -1 br.ret.sptk.many b0 ;; EPILOGUE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?