On Mon, Sep 14, 2020 at 07:43:38PM +0200, mateusznosek0@xxxxxxxxx wrote: > From: Mateusz Nosek <mateusznosek0@xxxxxxxxx> > > When flags A and B have equal values than the following code > > if(flags1 & A) > flags2 |= B; > > is equivalent to > > flags2 |= (flags1 & A); > > The latter code should generate less instructions and be faster as one > branch is omitted in it. [citation needed] $ cat test.c int a(int x) { int y = 0; if (x & 1) y |= 1; if (x & 2) y |= 2; return y; } $ objdump -d test.o 0000000000000000 <a>: 0: 89 f8 mov %edi,%eax 2: 83 e0 03 and $0x3,%eax 5: c3 retq Please stop submitting uglifying patches without checking they actually improve anything. GCC is smarter than you think it is.