no-scevccp-outer-7.c
来自「用于进行gcc测试」· C语言 代码 · 共 76 行
C
76 行
/* { dg-require-effective-target vect_int } */#include <stdarg.h>#include "tree-vect.h"#define N 16unsigned short in[N];unsigned short coef[N];unsigned short a[N];__attribute__ ((noinline)) unsigned intfoo (short scale){ int i; unsigned short j; unsigned int sum = 0; unsigned short sum_j; for (i = 0; i < N; i++) { sum_j = 0; for (j = 0; j < N; j++) { sum_j += j; } a[i] = sum_j; sum += ((unsigned int) in[i] * (unsigned int) coef[i]) >> scale; } return sum;}unsigned shortbar (void){ unsigned short j; unsigned short sum_j; sum_j = 0; for (j = 0; j < N; j++) { sum_j += j; } return sum_j;}int main (void){ int i; unsigned short j, sum_j; unsigned int sum = 0; unsigned int res; check_vect (); for (i=0; i<N; i++){ in[i] = 2*i; coef[i] = i; } res = foo (2); /* check results: */ for (i=0; i<N; i++) { if (a[i] != bar ()) abort (); sum += ((unsigned int) in[i] * (unsigned int) coef[i]) >> 2; } if (res != sum) abort (); return 0;}/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { target vect_widen_mult_hi_to_si } } } *//* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } *//* { dg-final { cleanup-tree-dump "vect" } } */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?