📄 builtin-prefetch-1.c
字号:
/* Test that __builtin_prefetch does no harm. Prefetch using all valid combinations of rw and locality values. These must be compile-time constants. */#define NO_TEMPORAL_LOCALITY 0#define LOW_TEMPORAL_LOCALITY 1#define MODERATE_TEMPORAL_LOCALITY 1#define HIGH_TEMPORAL_LOCALITY 3#define WRITE_ACCESS 1#define READ_ACCESS 0enum locality { none, low, moderate, high };enum rw { read, write };int arr[10];voidgood_const (const int *p){ __builtin_prefetch (p, 0, 0); __builtin_prefetch (p, 0, 1); __builtin_prefetch (p, 0, 2); __builtin_prefetch (p, READ_ACCESS, 3); __builtin_prefetch (p, 1, NO_TEMPORAL_LOCALITY); __builtin_prefetch (p, 1, LOW_TEMPORAL_LOCALITY); __builtin_prefetch (p, 1, MODERATE_TEMPORAL_LOCALITY); __builtin_prefetch (p, WRITE_ACCESS, HIGH_TEMPORAL_LOCALITY);}voidgood_enum (const int *p){ __builtin_prefetch (p, read, none); __builtin_prefetch (p, read, low); __builtin_prefetch (p, read, moderate); __builtin_prefetch (p, read, high); __builtin_prefetch (p, write, none); __builtin_prefetch (p, write, low); __builtin_prefetch (p, write, moderate); __builtin_prefetch (p, write, high);}voidgood_expr (const int *p){ __builtin_prefetch (p, 1 - 1, 6 - (2 * 3)); __builtin_prefetch (p, 1 + 0, 1 + 2);}voidgood_vararg (const int *p){ __builtin_prefetch (p, 0, 3); __builtin_prefetch (p, 0); __builtin_prefetch (p, 1); __builtin_prefetch (p);}intmain (){ good_const (arr); good_enum (arr); good_expr (arr); good_vararg (arr); exit (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -