#include <stdio.h> int main() { unsigned long long t1, t2; long long sq1, sq2, sq3; long long temp, diff1, diff2; asm volatile ("mov %0=ar.itc;;" : "=r"(t1) : : "memory"); diff1 = 1; diff2 = 2; temp = 1; sq1 = temp; diff1 = diff2 + diff1; temp = diff1 + temp; sq2 = temp; diff1 = diff2 + diff1; temp = diff1 + temp; sq3 = temp; asm volatile ("mov %0=ar.itc;;" : "=r"(t2) : : "memory"); printf("%lld\t%lld\t%lld\n", sq1, sq2, sq3); printf("%lld\t%lld\t%lld\n", t1, t2, t2-t1); return 0; }