On Tue, Jul 30, 2019 at 12:20:00PM +0200, Richard Biener wrote: > + if (compl_p) > + for (ix = 0; ix < BITMAP_ELEMENT_WORDS; ix++) > + { > + and_elt.bits[ix] = b_elt->bits[ix] & ~c_elt->bits[ix]; > + overall |= and_elt.bits[ix]; > + } > + else > + for (ix = 0; ix < BITMAP_ELEMENT_WORDS; ix++) > + { > + and_elt.bits[ix] = b_elt->bits[ix] & c_elt->bits[ix]; > + overall |= and_elt.bits[ix]; > + }
Might be more readable by moving the if (compl_p) into the loop, just guarding the single statement that is different or even use a BITMAP_WORD temporary to load c_elt->bits[ix] into it, then conditionally complement and then use unconditionally in &. Jakub