blob: 832cdd4737ac4e34f167e4cb9f7d1d3b5747c7ed [file] [log] [blame]
/* PR target/96938 */
/* { dg-do compile } */
/* { dg-options "-O2 -masm=att" } */
/* { dg-final { scan-assembler-times "\tbtrl\t" 10 } } */
void
f1 (unsigned char *f, int o, unsigned char v)
{
*f = (*f & ~(1 << o)) | (v << o);
}
void
f2 (unsigned char *f, int o, unsigned char v)
{
int t = *f & ~(1 << o);
*f = t | (v << o);
}
void
f3 (unsigned char *f, int o, unsigned char v)
{
*f &= ~(1 << o);
}
void
f4 (unsigned char *f, int o, unsigned char v)
{
*f = (*f & ~(1 << (o & 31))) | v;
}
void
f5 (unsigned char *f, int o, unsigned char v)
{
*f = (*f & ~(1 << (o & 31))) | (v << (o & 31));
}
void
f6 (unsigned short *f, int o, unsigned short v)
{
*f = (*f & ~(1 << o)) | (v << o);
}
void
f7 (unsigned short *f, int o, unsigned short v)
{
int t = *f & ~(1 << o);
*f = t | (v << o);
}
void
f8 (unsigned short *f, int o, unsigned short v)
{
*f &= ~(1 << o);
}
void
f9 (unsigned short *f, int o, unsigned short v)
{
*f = (*f & ~(1 << (o & 31))) | v;
}
void
f10 (unsigned short *f, int o, unsigned short v)
{
*f = (*f & ~(1 << (o & 31))) | (v << (o & 31));
}