| /* 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)); |
| } |