📄 c8_unif.c
字号:
/****************************************************************************/
/* Copyright (C) 1996-2000 Texas Instruments Incorporated */
/* All Rights Reserved */
/* C8_UNIF - UNROLLED_IF_THEN_ELSE */
/****************************************************************************/
#include <stdio.h>
#include <time.h>
short x[32] = { 5140, -1, -12, 7666, 4, -221, -16, -128,
-6513, -1776, 7317, 3851, -572, -70, -1, 7753,
-897, -23, -14, -1, -103, 214, 31, 7782,
39, 3, -2, -1643, -1, 0, -3, -8027 };
short th = 0;
int code = 32, msk = 1;
int ret_asm, ret_sa;
clock_t time_asm (int *);
clock_t time_sa (int *);
/****************************************************************************/
/* TOP LEVEL DRIVER FOR THE TEST. */
/****************************************************************************/
int main()
{
clock_t t_overhead, t_start, t_stop, t_asm, t_sa;
/************************************************************************/
/* COMPUTE THE OVERHEAD OF CALLING CLOCK TWICE TO GET TIMING INFO. */
/************************************************************************/
t_start = clock();
t_stop = clock();
t_overhead = t_stop - t_start;
/************************************************************************/
/* CALL THE INDIVIDIUAL TIMING ROUTINES. */
/************************************************************************/
t_asm = time_asm(&ret_asm) - t_overhead;
t_sa = time_sa(&ret_sa) - t_overhead;
/************************************************************************/
/* PRINT TIMING RESULTS */
/************************************************************************/
printf("UNROLLED_IF_THEN Assembly Clock Cycles: %d\n", t_asm);
printf("UNROLLED_IF_THEN Assembly Optimizer Clock Cycles: %d\n", t_sa);
}
/****************************************************************************/
/* COMPUTE THE ELAPSED TIME OF THE HAND CODED ASSEMBLY ROUTINE */
/****************************************************************************/
clock_t time_asm(int *i)
{
clock_t t_start, t_stop;
t_start = clock();
*i = unrolled_if_then_asm(x, code, msk, th);
t_stop = clock();
return t_stop - t_start;
}
/****************************************************************************/
/* COMPUTE THE ELAPSED TIME OF THE ASSEMBLY OPTIMIZER ROUTINE */
/****************************************************************************/
clock_t time_sa(int *i)
{
clock_t t_start, t_stop;
t_start = clock();
*i = unrolled_if_then_sa(x, code, msk, th);
t_stop = clock();
return t_stop - t_start;
}
/* Sample C code
int unrolled_if_then_c(const short a[], int codeword, int mask, short theta)
{
int i, sum, cond;
sum = 0;
for (i = 0; i < 32; i+=2)
{
cond = codeword & mask;
if (theta == !(!(cond)))
sum += a[i];
else
sum -= a[i];
mask = mask << 1;
cond = codeword & mask;
if (theta == !(!(cond)))
sum += a[i+1];
else
sum -= a[i+1];
mask = mask << 1;
}
return(sum);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -