/* { dg-do compile { target int128 } } */ /* { dg-options "-O2" } */ typedef unsigned long long uint64_t; uint64_t mulx64(uint64_t x) { __uint128_t r = (__uint128_t)x * 0x9E3779B97F4A7C15ull; return (uint64_t)r ^ (uint64_t)( r >> 64 ); } /* { dg-final { scan-assembler-not "movq" } } */