builtin-prefetch-5.c

来自「gcc-you can use this code to learn somet」· C语言 代码 · 共 61 行

C
61
字号
/* Test that __builtin_prefetch does no harm.   Use addresses that are unlikely to be word-aligned.  Some targets   have alignment requirements for prefetch addresses, so make sure the   compiler takes care of that.  This fails if it aborts, anything else   is OK.  */struct S {  short a;  short b;  char c[8];} s;char arr[100];char *ptr = arr;int idx = 3;voidarg_ptr (char *p){  __builtin_prefetch (p, 0, 0);}voidarg_idx (char *p, int i){  __builtin_prefetch (&p[i], 0, 0);}voidglob_ptr (void){  __builtin_prefetch (ptr, 0, 0);}voidglob_idx (void){  __builtin_prefetch (&ptr[idx], 0, 0);}intmain (){  __builtin_prefetch (&s.b, 0, 0);  __builtin_prefetch (&s.c[1], 0, 0);  arg_ptr (&s.c[1]);  arg_ptr (ptr+3);  arg_idx (ptr, 3);  arg_idx (ptr+1, 2);  idx = 3;  glob_ptr ();  glob_idx ();  ptr++;  idx = 2;  glob_ptr ();  glob_idx ();  exit (0);}

⌨️ 快捷键说明

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