⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iamax_sse.s

📁 Optimized GotoBLAS libraries
💻 S
📖 第 1 页 / 共 2 页
字号:
	maxss	%xmm4, %xmm0	jmp	.L40	ALIGN_4.L40:	movq	XX, X	movq	MM, M	maxps	%xmm1, %xmm0	maxps	%xmm3, %xmm2	maxps	%xmm2, %xmm0	movaps	%xmm0, %xmm1	movhlps %xmm0, %xmm0	maxps	%xmm1, %xmm0	movaps	%xmm0, %xmm1	shufps	$1, %xmm0, %xmm0	maxss	%xmm1, %xmm0	shufps	$0, %xmm0, %xmm0	movq	M,  I	sarq	$3, I	jle	.L45	ALIGN_4	.L43:#if defined(OPTERON) || defined(BARCELONA)	prefetch	PREFETCHSIZE * SIZE(X)#endif#ifdef PENTIUM4	prefetcht2	PREFETCHSIZE * SIZE(X)#endif	movsd	0 * SIZE(X), %xmm1	movhps	2 * SIZE(X), %xmm1#ifdef ABS	andps	 %xmm15, %xmm1#endif	cmpeqps	%xmm0, %xmm1	movsd	4 * SIZE(X), %xmm3	movhps	6 * SIZE(X), %xmm3#ifdef ABS	andps	 %xmm15, %xmm3#endif	cmpeqps	%xmm0, %xmm3	orps	%xmm3, %xmm1	movmskps %xmm1, %r11	testq	 $15, %r11	jne	 .L44	addq	$8 * SIZE, X	addq	$8, RET	decq	I	jg	.L43	jmp	.L45	ALIGN_3.L44:	movss	0 * SIZE(X), %xmm1	movss	1 * SIZE(X), %xmm2	movss	2 * SIZE(X), %xmm3	movss	3 * SIZE(X), %xmm4	movss	4 * SIZE(X), %xmm5	movss	5 * SIZE(X), %xmm6	movss	6 * SIZE(X), %xmm7	movss	7 * SIZE(X), %xmm8#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2	andps	 %xmm15, %xmm3	andps	 %xmm15, %xmm4	andps	 %xmm15, %xmm5	andps	 %xmm15, %xmm6	andps	 %xmm15, %xmm7	andps	 %xmm15, %xmm8#endif	addq	$8 * SIZE, X	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	incq	RET	comiss	%xmm0, %xmm3	je	.L999	incq	RET	comiss	%xmm0, %xmm4	je	.L999	incq	RET	comiss	%xmm0, %xmm5	je	.L999	incq	RET	comiss	%xmm0, %xmm6	je	.L999	incq	RET	comiss	%xmm0, %xmm7	je	.L999	incq	RET	jmp	.L999	ALIGN_4.L45:	testq	$4, M	je	.L46	movss	0 * SIZE(X), %xmm1	movss	1 * SIZE(X), %xmm2	movss	2 * SIZE(X), %xmm3	movss	3 * SIZE(X), %xmm4#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2	andps	 %xmm15, %xmm3	andps	 %xmm15, %xmm4#endif	addq	$4 * SIZE, X	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	incq	RET	comiss	%xmm0, %xmm3	je	.L999	incq	RET	comiss	%xmm0, %xmm4	je	.L999	ALIGN_3	.L46:	testq	$2, M	je	.L47	movss	0 * SIZE(X), %xmm1	movss	1 * SIZE(X), %xmm2#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2#endif	addq	$2 * SIZE, X	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	ALIGN_3	.L47:	incq	RET	jmp	.L999	ALIGN_3.L80:	movq	M,  I	sarq	$3, I	jle	.L85	ALIGN_4	.L81:#if defined(OPTERON) || defined(BARCELONA)	prefetch	PREFETCHSIZE * SIZE(X)#endif#ifdef PENTIUM4	prefetcht2	PREFETCHSIZE * SIZE(X)#endif	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm4#endif	maxss	%xmm4, %xmm0	movss	0 * SIZE(X), %xmm5	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm5#endif	maxss	%xmm5, %xmm1	movss	0 * SIZE(X), %xmm6	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm6#endif	maxss	%xmm6, %xmm2	movss	0 * SIZE(X), %xmm7	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm7#endif	maxss	%xmm7, %xmm3	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm4#endif	maxss	%xmm4, %xmm0	movss	0 * SIZE(X), %xmm5	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm5#endif	maxss	%xmm5, %xmm1	movss	0 * SIZE(X), %xmm6	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm6#endif	maxss	%xmm6, %xmm2	movss	0 * SIZE(X), %xmm7	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm7#endif	maxss	%xmm7, %xmm3	decq	I	jg	.L81	ALIGN_4.L85:	andq	$7,  M	jle	.L90	testq	$4, M	je	.L86	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm4#endif	maxss	%xmm4, %xmm0	movss	0 * SIZE(X), %xmm5	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm5#endif	maxss	%xmm5, %xmm1	movss	0 * SIZE(X), %xmm6	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm6#endif	maxss	%xmm6, %xmm2	movss	0 * SIZE(X), %xmm7	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm7#endif	maxss	%xmm7, %xmm3	ALIGN_3	.L86:	testq	$2, M	je	.L87	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm4#endif	maxss	%xmm4, %xmm0	movss	0 * SIZE(X), %xmm5	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm5#endif	maxss	%xmm5, %xmm1	ALIGN_3	.L87:	testq	$1, M	je	.L90	movss	0 * SIZE(X), %xmm6	addq	INCX, X#ifdef ABS	andps	%xmm15, %xmm6#endif	maxss	%xmm6, %xmm2	ALIGN_4.L90:	movq	XX, X	movq	MM, M	maxss	%xmm1, %xmm0	maxss	%xmm3, %xmm2	maxss	%xmm2, %xmm0	shufps	$0, %xmm0, %xmm0	movq	M,  I	sarq	$3, I	jle	.L95	ALIGN_4	.L93:#if defined(OPTERON) || defined(BARCELONA)	prefetch	PREFETCHSIZE * SIZE(X)#endif#ifdef PENTIUM4	prefetcht2	PREFETCHSIZE * SIZE(X)#endif	movss	0 * SIZE(X), %xmm1	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm1#endif	cmpeqss	%xmm0, %xmm1	movss	0 * SIZE(X), %xmm2	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm2#endif	cmpeqss	%xmm0, %xmm2	movss	0 * SIZE(X), %xmm3	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm3#endif	cmpeqss	%xmm0, %xmm3	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm4#endif	cmpeqss	%xmm0, %xmm4	movss	0 * SIZE(X), %xmm5	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm5#endif	cmpeqps	%xmm0, %xmm5	movss	0 * SIZE(X), %xmm6	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm6#endif	cmpeqss	%xmm0, %xmm6	movss	0 * SIZE(X), %xmm7	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm7#endif	cmpeqss	%xmm0, %xmm7	movss	0 * SIZE(X), %xmm8	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm8#endif	cmpeqss	%xmm0, %xmm8	orps	%xmm2, %xmm1	orps	%xmm4, %xmm3	orps	%xmm6, %xmm5	orps	%xmm8, %xmm7	orps	%xmm3, %xmm1	orps	%xmm7, %xmm5	orps	%xmm5, %xmm1	movmskps %xmm1, %r11	testq	 $15, %r11	jne	 .L94	addq	$8, RET	decq	I	jg	.L93	jmp	.L95	ALIGN_3.L94:	subq	INCX, X	movss	0 * SIZE(X), %xmm8	subq	INCX, X	movss	0 * SIZE(X), %xmm7	subq	INCX, X	movss	0 * SIZE(X), %xmm6	subq	INCX, X	movss	0 * SIZE(X), %xmm5	subq	INCX, X	movss	0 * SIZE(X), %xmm4	subq	INCX, X	movss	0 * SIZE(X), %xmm3	subq	INCX, X	movss	0 * SIZE(X), %xmm2	subq	INCX, X	movss	0 * SIZE(X), %xmm1#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2	andps	 %xmm15, %xmm3	andps	 %xmm15, %xmm4	andps	 %xmm15, %xmm5	andps	 %xmm15, %xmm6	andps	 %xmm15, %xmm7	andps	 %xmm15, %xmm8#endif	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	incq	RET	comiss	%xmm0, %xmm3	je	.L999	incq	RET	comiss	%xmm0, %xmm4	je	.L999	incq	RET	comiss	%xmm0, %xmm5	je	.L999	incq	RET	comiss	%xmm0, %xmm6	je	.L999	incq	RET	comiss	%xmm0, %xmm7	je	.L999	incq	RET	jmp	.L999	ALIGN_4.L95:	testq	$4, M	je	.L96	movss	0 * SIZE(X), %xmm1	addq	INCX, X	movss	0 * SIZE(X), %xmm2	addq	INCX, X	movss	0 * SIZE(X), %xmm3	addq	INCX, X	movss	0 * SIZE(X), %xmm4	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2	andps	 %xmm15, %xmm3	andps	 %xmm15, %xmm4#endif	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	incq	RET	comiss	%xmm0, %xmm3	je	.L999	incq	RET	comiss	%xmm0, %xmm4	je	.L999	ALIGN_3	.L96:	testq	$2, M	je	.L97	movss	0 * SIZE(X), %xmm1	addq	INCX, X	movss	0 * SIZE(X), %xmm2	addq	INCX, X#ifdef ABS	andps	 %xmm15, %xmm1	andps	 %xmm15, %xmm2#endif	incq	RET	comiss	%xmm0, %xmm1	je	.L999	incq	RET	comiss	%xmm0, %xmm2	je	.L999	ALIGN_3	.L97:	incq	RET	ALIGN_3.L999:	RESTOREREGISTERS	ret	EPILOGUE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -