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

📄 simd.h

📁 这是本人编写的软件接收机
💻 H
字号:
#ifndef SIMD_H
#define SIMD_H


//Use MMX registers (64 bits wide)
/********************************************************************************/
//Generic 16 bit integer routines
int  mmx_dot(void *A, void *B, int cnt);						//Dop Product
void mmx_mul(void *A, void *B, int cnt);						//Multiply
void mmx_add(void *A, void *B, int cnt);						//Add
void mmx_sub(void *A, void *B, int cnt);						//Subtract
void mmx_qnt(void *A, int cnt);									//Quantize to +-1
void mmx_mul(void *A, void *B, void *C, int cnt);				//Multiply
void mmx_add(void *A, void *B, void *C, int cnt);				//Add
void mmx_sub(void *A, void *B, void *C, int cnt);				//Subtract
void mmx_qnt(void *A, void *C, int cnt);						//Quantize to +-1


//16 bit Complex Interlieved Routines
__int64 mmx_cacc(void *A, void *B, int cnt);					//Complex Accumulate
void mmx_cmul(void *A, void *B, int cnt, int shift);			//Complex multiply
void mmx_crot(void *A, void *B, int cnt, int shift);			//Complex Rotate
void mmx_conj(void *A, int cnt);								//Complex Conjugate
void mmx_cmul(void *A, void *B, void *C, int cnt, int shift);	//Complex Multiply
void mmx_crot(void *A, void *B, void *C, int cnt, int shift);	//Complex Rotate
void mmx_conj(void *A, void *C, int cnt);						//Complex Conjugate
/********************************************************************************/


//Use SSE registers (128 bits wide)
/********************************************************************************/
//Generic 16 bit integer routines
int  sse_dot(void *A, void *B, int cnt);						//Dop Product
void sse_mul(void *A, void *B, int cnt);						//Multiply
void sse_add(void *A, void *B, int cnt);						//Add
void sse_sub(void *A, void *B, int cnt);						//Subtract
void sse_qnt(void *A, int cnt);									//Quantize to +-1
void sse_mul(void *A, void *B, void *C, int cnt);				//Multiply
void sse_add(void *A, void *B, void *C, int cnt);				//Add
void sse_sub(void *A, void *B, void *C, int cnt);				//Subtract
void sse_qnt(void *A, void *C, int cnt);						//Quantize to +-1


//16 bit Complex Interlieved Routines
__int64 sse_cacc(void *A, void *B, int cnt);					//Complex Accumulate
void sse_cmul(void *A, void *B, int cnt, int shift);			//Complex multiply
void sse_crot(void *A, void *B, int cnt, int shift);			//Complex Rotate
void sse_conj(void *A, int cnt);								//Complex Conjugate
void sse_cmul(void *A, void *B, void *C, int cnt, int shift);	//Complex Multiply
void sse_crot(void *A, void *B, void *C, int cnt, int shift);	//Complex Rotate
void sse_conj(void *A, void *C, int cnt);						//Complex Conjugate
/********************************************************************************/


//MMX Detection
/********************************************************************************/
bool CPU_MMX();													//Check for MMX 
bool CPU_SSE();													//Check for SSE 
bool CPU_SSE2();												//Check for SSE2 
bool CPU_SSE3();												//Check for SSE3 
/********************************************************************************/


#endif

⌨️ 快捷键说明

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