https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is something to look into:
#define const1 0x0101010101010101ULL
#define const2 0x0080402010080400ULL
#define const0 const1
unsigned long long g(unsigned long long occ, const unsigned int sq) {
return const0 ;
}
unsigned long long f(unsigned long long occ, const unsigned int sq) {
unsigned long long t= (const0)>>32<<32 ;
unsigned long long t1= (unsigned int)(const0) ;
asm("":"+r"(t));
return t | t1;
}