/* PR target/100028 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O2" } */ | |
#define W 3 | |
#define L 11 | |
int | |
foo (int d, int s) | |
{ | |
int wmask = (1 << W) - 1; | |
return (d & ~wmask) | ((s >> L) & wmask); | |
} | |
long long int | |
bar (long long int d, long long int s) | |
{ | |
long long int wmask = (1LL << W) - 1; | |
return (d & ~wmask) | ((s >> L) & wmask); | |
} | |
/* { dg-final { scan-assembler-times {\tbfxil\t} 2 } } */ |