builtin-prefetch-1.c

来自「linux下编程用 编译软件」· C语言 代码 · 共 46 行

C
46
字号
/* Test that __builtin_prefetch does no harm.   Prefetch using some invalid rw and locality values.  These must be   compile-time constants.  *//* { dg-do run } */extern void exit (int);enum locality { none, low, moderate, high, bogus };enum rw { read, write };int arr[10];voidgood (int *p){  __builtin_prefetch (p, 0, 0);  __builtin_prefetch (p, 0, 1);  __builtin_prefetch (p, 0, 2);  __builtin_prefetch (p, 0, 3);  __builtin_prefetch (p, 1, 0);  __builtin_prefetch (p, 1, 1);  __builtin_prefetch (p, 1, 2);  __builtin_prefetch (p, 1, 3);}voidbad (int *p){  __builtin_prefetch (p, -1, 0);  /* { dg-warning "invalid second argument to '__builtin_prefetch'; using zero" } */  __builtin_prefetch (p, 2, 0);   /* { dg-warning "invalid second argument to '__builtin_prefetch'; using zero" } */  __builtin_prefetch (p, bogus, 0);   /* { dg-warning "invalid second argument to '__builtin_prefetch'; using zero" } */  __builtin_prefetch (p, 0, -1);  /* { dg-warning "invalid third argument to '__builtin_prefetch'; using zero" } */  __builtin_prefetch (p, 0, 4);   /* { dg-warning "invalid third argument to '__builtin_prefetch'; using zero" } */  __builtin_prefetch (p, 0, bogus);   /* { dg-warning "invalid third argument to '__builtin_prefetch'; using zero" } */}intmain (){  good (arr);  bad (arr);  exit (0);}

⌨️ 快捷键说明

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