📄 sse_memory.c
字号:
TEST_INSN( &AllMask, SD,mulsd)TEST_INSN( &AllMask, PD,orpd)TEST_INSN( &AllMask, 16,packssdw)TEST_INSN( &AllMask, 16,packsswb)TEST_INSN( &AllMask, 16,packuswb)TEST_INSN( &AllMask, 16,paddb)TEST_INSN( &AllMask, 16,paddd)TEST_INSN( &AllMask, 16,paddq)TEST_INSN( &AllMask, 16,paddsb)TEST_INSN( &AllMask, 16,paddsw)TEST_INSN( &AllMask, 16,paddusb)TEST_INSN( &AllMask, 16,paddusw)TEST_INSN( &AllMask, 16,paddw)TEST_INSN( &AllMask, 16,pand)TEST_INSN( &AllMask, 16,pandn)TEST_INSN( &AllMask, 16,pavgb)TEST_INSN( &AllMask, 16,pavgw)TEST_INSN( &AllMask, 16,pcmpeqb)TEST_INSN( &AllMask, 16,pcmpeqd)TEST_INSN( &AllMask, 16,pcmpeqw)TEST_INSN( &AllMask, 16,pcmpgtb)TEST_INSN( &AllMask, 16,pcmpgtd)TEST_INSN( &AllMask, 16,pcmpgtw)//TEST_INSN( &AllMask, 16,pextrw)//TEST_INSN( &AllMask, 16,pinsrw)TEST_INSN( &AllMask, 16,pmaxsw)TEST_INSN( &AllMask, 16,pmaxub)TEST_INSN( &AllMask, 16,pminsw)TEST_INSN( &AllMask, 16,pminub)//TEST_INSN( &AllMask, 0,pmovmskb)TEST_INSN( &AllMask, 16,pmulhuw)TEST_INSN( &AllMask, 16,pmulhw)TEST_INSN( &AllMask, 16,pmullw)TEST_INSN( &AllMask, 16,pmuludq)TEST_INSN( &AllMask, 16,por)//TEST_INSN( &AllMask, 16,pshufd)//TEST_INSN( &AllMask, 16,pshufhw)//TEST_INSN( &AllMask, 16,pshuflw)TEST_INSN( &AllMask, 16,pslld)//TEST_INSN( &AllMask, 16,pslldq)TEST_INSN( &AllMask, 16,psllq)TEST_INSN( &AllMask, 16,psllw)TEST_INSN( &AllMask, 16,psrad)TEST_INSN( &AllMask, 16,psraw)TEST_INSN( &AllMask, 16,psrld)//TEST_INSN( &AllMask, 16,psrldq)TEST_INSN( &AllMask, 16,psrlq)TEST_INSN( &AllMask, 16,psrlw)TEST_INSN( &AllMask, 16,psubb)TEST_INSN( &AllMask, 16,psubd)TEST_INSN( &AllMask, 16,psubq)TEST_INSN( &AllMask, 16,psubsb)TEST_INSN( &AllMask, 16,psubsw)TEST_INSN( &AllMask, 16,psubusb)TEST_INSN( &AllMask, 16,psubusw)TEST_INSN( &AllMask, 16,psubw)TEST_INSN( &AllMask, 16,punpckhbw)TEST_INSN( &AllMask, 16,punpckhdq)TEST_INSN( &AllMask, 16,punpckhqdq)TEST_INSN( &AllMask, 16,punpckhwd)TEST_INSN( &AllMask, 16,punpcklbw)TEST_INSN( &AllMask, 16,punpckldq)TEST_INSN( &AllMask, 16,punpcklqdq)TEST_INSN( &AllMask, 16,punpcklwd)TEST_INSN( &AllMask, 16,pxor)//TEST_INSN( &AllMask, PD,shufpd)TEST_INSN( &AllMask, PD,sqrtpd)TEST_INSN( &AllMask, SD,sqrtsd)TEST_INSN( &AllMask, PD,subpd)TEST_INSN( &AllMask, SD,subsd)TEST_INSN( &AllMask, SD,ucomisd)TEST_INSN( &AllMask, PD,unpckhpd)TEST_INSN( &AllMask, PD,unpcklpd)TEST_INSN( &AllMask, PD,xorpd)int main ( int argc, char** argv ){ Int sse1 = 0, sse2 = 0; if (argc == 2 && 0==strcmp(argv[1], "sse1")) { sse1 = 1; } else if (argc == 2 && 0==strcmp(argv[1], "sse2")) { sse2 = 1; } else if (argc == 2 && 0==strcmp(argv[1], "all")) { sse1 = sse2 = 1; } else { fprintf(stderr, "usage: sse_memory [sse1|sse2|all]\n"); return 0; } /* ------------------------ SSE1 ------------------------ */ if (sse1) { do_addps(); do_addss(); do_andnps(); do_andps(); do_cmpeqps(); do_cmpeqss(); do_cmpleps(); do_cmpless(); do_cmpltps(); do_cmpltss(); do_cmpneqps(); do_cmpneqss(); do_cmpnleps(); do_cmpnless(); do_cmpnltps(); do_cmpnltss(); do_cmpordps(); do_cmpordss(); do_cmpunordps(); do_cmpunordss(); do_comiss(); //TEST_INSN( &AllMask, 0,cvtpi2ps) //TEST_INSN( &AllMask, 0,cvtps2pi) //TEST_INSN( &AllMask, 0,cvtsi2ss) //TEST_INSN( &AllMask, 0,cvtss2si) //TEST_INSN( &AllMask, 0,cvttps2pi) //TEST_INSN( &AllMask, 0,cvttss2si) do_divps(); do_divss(); do_maxps(); do_maxss(); do_minps(); do_minss(); do_movaps(); //TEST_INSN( &AllMask, 0,movhlps) //TEST_INSN( &AllMask, 0,movhps) //TEST_INSN( &AllMask, 0,movlhps) //TEST_INSN( &AllMask, 0,movlps) //TEST_INSN( &AllMask, 0,movmskps) //TEST_INSN( &AllMask, 0,movntps) //TEST_INSN( &AllMask, 0,movntq) do_movss(); do_movups(); do_mulps(); do_mulss(); do_orps(); //TEST_INSN( &AllMask, 0,pavgb) -- dup with sse2? //TEST_INSN( &AllMask, 0,pavgw) -- dup with sse2? //TEST_INSN( &AllMask, 0,pextrw) //TEST_INSN( &AllMask, 0,pinsrw) //TEST_INSN( &AllMask, 0,pmaxsw) -- dup with sse2? //TEST_INSN( &AllMask, 0,pmaxub) -- dup with sse2? //TEST_INSN( &AllMask, 0,pminsw) -- dup with sse2? //TEST_INSN( &AllMask, 0,pminub) -- dup with sse2? //TEST_INSN( &AllMask, 0,pmovmskb) //TEST_INSN( &AllMask, 0,pmulhuw) -- dup with sse2? //do_psadbw(); -- XXXXXXXXXXXXXXXX sse2 (xmm variant) not implemented! //TEST_INSN( &AllMask, 0,pshufw) do_rcpps(); do_rcpss(); do_rsqrtps(); do_rsqrtss(); //TEST_INSN( &AllMask, PS,shufps) do_sqrtps(); do_sqrtss(); do_subps(); do_subss(); do_ucomiss(); do_unpckhps(); do_unpcklps(); do_xorps(); } /* ------------------------ SSE2 ------------------------ */ if (sse2) { do_addpd(); do_addsd(); do_andnpd(); do_andpd(); do_cmpeqpd(); do_cmpeqsd(); do_cmplepd(); do_cmplesd(); do_cmpltpd(); do_cmpltsd(); do_cmpneqpd(); do_cmpneqsd(); do_cmpnlepd(); do_cmpnlesd(); do_cmpnltpd(); do_cmpnltsd(); do_cmpordpd(); do_cmpordsd(); do_cmpunordpd(); do_cmpunordsd(); do_comisd(); do_cvtdq2pd(); do_cvtdq2ps(); do_cvtpd2dq(); //TEST_INSN( &AllMask, 0,cvtpd2pi) do_cvtpd2ps(); //TEST_INSN( &AllMask, 0,cvtpi2pd) do_cvtps2dq(); do_cvtps2pd(); //TEST_INSN( &AllMask, 0,cvtsd2si) do_cvtsd2ss(); //TEST_INSN( &AllMask, 0,cvtsi2sd) do_cvtss2sd(); do_cvttpd2dq(); //TEST_INSN( &AllMask, 0,cvttpd2pi) do_cvttps2dq(); //TEST_INSN( &AllMask, 0,cvttsd2si) do_divpd(); do_divsd(); do_maxpd(); do_maxsd(); do_minpd(); do_minsd(); do_movapd(); //TEST_INSN( &AllMask, 8,movd) //TEST_INSN( &AllMask, 0,movdq2q) do_movdqa(); do_movdqu(); //TEST_INSN( &AllMask, 16,movhpd) //TEST_INSN( &AllMask, 16,movlpd) //TEST_INSN( &AllMask, 0,movmskpd) //TEST_INSN( &AllMask, 0,movntdq) //TEST_INSN( &AllMask, 0,movnti) //TEST_INSN( &AllMask, 0,movntpd) do_movq(); //TEST_INSN( &AllMask, 0,movq2dq) do_movsd(); do_movupd(); do_mulpd(); do_mulsd(); do_orpd(); do_packssdw(); do_packsswb(); do_packuswb(); do_paddb(); do_paddd(); do_paddq(); do_paddsb(); do_paddsw(); do_paddusb(); do_paddusw(); do_paddw(); do_pand(); do_pandn(); do_pavgb(); do_pavgw(); do_pcmpeqb(); do_pcmpeqd(); do_pcmpeqw(); do_pcmpgtb(); do_pcmpgtd(); do_pcmpgtw(); //TEST_INSN( &AllMask, 16,pextrw) //TEST_INSN( &AllMask, 16,pinsrw) do_pmaxsw(); do_pmaxub(); do_pminsw(); do_pminub(); //TEST_INSN( &AllMask, 0,pmovmskb) do_pmulhuw(); do_pmulhw(); do_pmullw(); do_pmuludq(); do_por(); //TEST_INSN( &AllMask, 16,pshufd) //TEST_INSN( &AllMask, 16,pshufhw) //TEST_INSN( &AllMask, 16,pshuflw) do_pslld(); //TEST_INSN( &AllMask, 16,pslldq) do_psllq(); do_psllw(); do_psrad(); do_psraw(); do_psrld(); //TEST_INSN( &AllMask, 16,psrldq) do_psrlq(); do_psrlw(); do_psubb(); do_psubd(); do_psubq(); do_psubsb(); do_psubsw(); do_psubusb(); do_psubusw(); do_psubw(); do_punpckhbw(); do_punpckhdq(); do_punpckhqdq(); do_punpckhwd(); do_punpcklbw(); do_punpckldq(); do_punpcklqdq(); do_punpcklwd(); do_pxor(); //TEST_INSN( &AllMask, PD,shufpd) do_sqrtpd(); do_sqrtsd(); do_subpd(); do_subsd(); do_ucomisd(); do_unpckhpd(); do_unpcklpd(); do_xorpd(); } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -