9 #define WORK_COUNT 5000
11 static volatile uint64_t
sink;
13 __attribute__((noinline))
void s1(
volatile uint8_t* p, uint8_t v) { *p = v; }
14 __attribute__((noinline))
void s2(
volatile uint16_t* p, uint16_t v) { *p = v; }
15 __attribute__((noinline))
void s4(
volatile uint32_t* p, uint32_t v) { *p = v; }
16 __attribute__((noinline))
void s8(
volatile uint64_t* p, uint64_t v) { *p = v; }
18 int main(
int argc,
char** argv) {
19 (void)argc; (void)argv;
26 for (
int i = 0; i <
WORK_COUNT; ++i) { b1[i]=0xA; b2[i]=0xAAAA; b4[i]=0xAAAAAAAAu; b8[i]=0xAAAAAAAAAAAAAAAAull; }
29 s1(&b1[i], 1); s1(&b1[i], 2);
30 s2(&b2[i], 1); s2(&b2[i], 2);
31 s4(&b4[i], 1); s4(&b4[i], 2);
32 s8(&b8[i], 1); s8(&b8[i], 2);
37 for (
int i = 0; i <
WORK_COUNT; ++i) s += (uint64_t)b1[i] + b2[i] + b4[i] + b8[i];
int main(int argc, char **argv)
__attribute__((noinline))
static volatile uint64_t sink