builtin_33_chip_hints_features.c (908B)
1 int test_main(void) { 2 enum { 3 unknown_target_feature = 4 __builtin_kit_target_has("kit-feature-that-does-not-exist") 5 }; 6 int value = 7; 7 int values[2] = {1, 7}; 8 int* aligned; 9 10 __builtin_prefetch(&value); 11 __builtin_prefetch(&value, 1); 12 __builtin_prefetch(&value, 0, 3); 13 aligned = (int*)__builtin_assume_aligned(&value, _Alignof(int)); 14 if (aligned != &value || *aligned != 7) return 1; 15 aligned = (int*)__builtin_assume_aligned(&values[1], 8, sizeof(int)); 16 if (aligned != &values[1] || *aligned != 7) return 7; 17 18 __builtin_kit_cpu_relax(); 19 20 if (unknown_target_feature) return 2; 21 #if defined(__x86_64__) 22 if (!__builtin_kit_target_has("sse2")) return 3; 23 if (__builtin_kit_target_has("popcnt")) return 6; 24 #elif defined(__riscv) 25 if (!__builtin_kit_target_has("i")) return 4; 26 #elif defined(__wasm__) 27 if (!__builtin_kit_target_has("threads")) return 5; 28 #endif 29 return 42; 30 }