/* { dg-do compile { target int128 } } */ | |
/* { dg-options "-O2 -msse4.1 -mstv -mno-stackrealign" } */ | |
unsigned __int128 a, b; | |
void rot1() { a = (b >> 1) | (b << 127); } | |
void rot4() { a = (b >> 4) | (b << 124); } | |
void rot8() { a = (b >> 8) | (b << 120); } | |
void rot32() { a = (b >> 32) | (b << 96); } | |
void rot64() { a = (b >> 64) | (b << 64); } | |
/* { dg-final { scan-assembler-not "shrdq" } } */ | |
/* { dg-final { scan-assembler "pshufd" } } */ |