unsigned long long t1, t2, t3, t4; double a = 1.35462832e2, b = 34.23472394e1; mpf_t x1, y1, z1; mpfr_t x2, y2, z2; mpf_set_default_prec(64); mpfr_set_default_prec(64); int l; for (l=0; l<10000; l++) { asm volatile ("mov %0=ar.itc;;" : "=r"(t1) : : "memory"); mpfr_init(x2); mpfr_init(y2); mpfr_init(z2); mpfr_set_prec(z2, 4288); asm volatile ("mov %0=ar.itc;;" : "=r"(t2) : : "memory"); mpfr_set_d(x2, a, GMP_RNDZ); mpfr_set_d(y2, b, GMP_RNDZ); asm volatile ("mov %0=ar.itc;;" : "=r"(t3) : : "memory"); mpfr_add(z2, x2, y2, GMP_RNDZ); mpfr_mul(z2, z2, x2, GMP_RNDZ); mpfr_mul(z2, z2, y2, GMP_RNDZ); mpfr_add(z2, z2, y2, GMP_RNDZ); mpfr_mul(z2, z2, x2, GMP_RNDZ); mpfr_sub(z2, z2, y2, GMP_RNDZ); mpfr_mul(z2, z2, x2, GMP_RNDZ); mpfr_mul(z2, z2, x2, GMP_RNDZ); asm volatile ("mov %0=ar.itc;;" : "=r"(t4) : : "memory"); asm volatile ("mov %0=ar.itc;;" : "=r"(t1) : : "memory"); mpf_init(x1); mpf_init(y1); mpf_init(z1); mpf_set_prec(z1, 4288); asm volatile ("mov %0=ar.itc;;" : "=r"(t2) : : "memory"); mpf_set_d(x1, a); mpf_set_d(y1, b); asm volatile ("mov %0=ar.itc;;" : "=r"(t3) : : "memory"); mpf_add(z1, x1, y1); mpf_mul(z1, z1, x1); mpf_mul(z1, z1, y1); mpf_add(z1, z1, y1); mpf_mul(z1, z1, x1); mpf_sub(z1, z1, y1); mpf_mul(z1, z1, x1); mpf_mul(z1, z1, x1); asm volatile ("mov %0=ar.itc;;" : "=r"(t4) : : "memory"); mpf_clear(x1); mpf_clear(y1); mpf_clear(z1); mpfr_clear(x2); mpfr_clear(y2); mpfr_clear(z2);´ }