Hm, any reason not to use bit fields (`unsigned cmpri:4, cmpre:4;`)? You might need to reverse the order. I'm always not sure how the Endianess applies in here. Also, `pad` only as 4 bits, about `reserved` has twenty.