📄 builtin-prefetch-5.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -