Bitoperationen auf den Bittypen werden intern als, äh, Bitoperationen behandelt. Hier ist, was der "und"-Code zum Beispiel macht:
p1 = VARBITS(arg1);
p2 = VARBITS(arg2);
r = VARBITS(result);
for (i = 0; i < VARBITBYTES(arg1); i++)
*r++ = *p1++ & *p2++;
(Es sind also eigentlich 8-Bit-Blöcke.)
Ich denke also, das sollte ziemlich schnell gehen.