nunoplopes wrote: Note that changing the memory accesses performed by clang (load or store) *is* an ABI change at IR level because of UB. Also, please have a look at the existing `-ffine-grained-bitfield-accesses` flag and the discussions around it and IPO. https://github.com/llvm/llvm-project/pull/65742