📄 builtin-prefetch-6.c
字号:
/* Test that __builtin_prefetch does no harm. Data prefetch should not fault if used with an invalid address. */#include <limits.h>#define ARRSIZE 65int *bad_addr[ARRSIZE];int arr_used;/* Fill bad_addr with a range of values in the hopes that on any target some will be invalid addresses. */voidinit_addrs (void){ int i; int bits_per_ptr = sizeof (void *) * 8; for (i = 0; i < bits_per_ptr; i++) bad_addr[i] = (void *)(1UL << i); arr_used = bits_per_ptr + 1; /* The last element used is zero. */}voidprefetch_for_read (void){ int i; for (i = 0; i < ARRSIZE; i++) __builtin_prefetch (bad_addr[i], 0, 0);}voidprefetch_for_write (void){ int i; for (i = 0; i < ARRSIZE; i++) __builtin_prefetch (bad_addr[i], 1, 0);}intmain (){ init_addrs (); prefetch_for_read (); prefetch_for_write (); exit (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -