blob: bad5c48f945273868dcf74c2d3799ceeb3a62107 [file] [log] [blame]
/* PR target/93346 */
/* { dg-do compile } */
/* { dg-options "-O2 -mbmi2" } */
/* { dg-final { scan-assembler-times "\tbzhi\t" 12 } } */
unsigned int
f1 (unsigned int x, unsigned int y)
{
return x & ((1 << y) - 1);
}
unsigned int
f2 (unsigned int x, unsigned int y)
{
return x & ((1U << y) - 1);
}
int
f3 (int x, unsigned int y)
{
return x & ((1 << y) - 1);
}
unsigned long
f4 (unsigned long x, unsigned int y)
{
return x & ((1L << y) - 1);
}
unsigned long
f5 (unsigned long x, unsigned int y)
{
return x & ((1UL << y) - 1);
}
long
f6 (long x, unsigned int y)
{
return x & ((1L << y) - 1);
}
unsigned int
f7 (unsigned int x, int y)
{
return x & ((1 << y) - 1);
}
unsigned int
f8 (unsigned int x, int y)
{
return x & ((1U << y) - 1);
}
int
f9 (int x, int y)
{
return x & ((1 << y) - 1);
}
unsigned long
f10 (unsigned long x, int y)
{
return x & ((1L << y) - 1);
}
unsigned long
f11 (unsigned long x, int y)
{
return x & ((1UL << y) - 1);
}
long
f12 (long x, int y)
{
return x & ((1L << y) - 1);
}