?? 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 + -