Hi, This is a RFC for my prototype for bitfield read vectorization. This patch enables bit-field read vectorization by removing the rejection of bit-field read's during DR analysis and by adding two vect patterns. The first one transforms TREE_COMPONENT's with BIT_FIELD_DECL's into BIT_FIELD_REF's, this is a temporary one as I believe there are plans to do this lowering earlier in the compiler. To avoid having to wait for that to happen we decided to implement this temporary vect pattern. The second one looks for conversions of the result of BIT_FIELD_REF's from a 'partial' type to a 'full-type' and transforms it into a 'full-type' load followed by the necessary shifting and masking. The patch is not perfect, one thing I'd like to change for instance is the way the 'full-type' load is represented. I currently abuse the fact that the vectorizer transforms the original TREE_COMPONENT with a BIT_FIELD_DECL into a full-type vector load, because it uses the smallest mode necessary for that precision. The reason I do this is because I was struggling to construct a MEM_REF that the vectorizer would accept and this for some reason seemed to work ... I'd appreciate some pointers on how to do this properly :) Another aspect that I haven't paid much attention to yet is costing, I've noticed some testcases fail to vectorize due to costing where I think it might be wrong, but like I said, I haven't paid much attention to it. Finally another aspect I'd eventually like to tackle is the sinking of the masking when possible, for instance in bit-field-read-3.c the 'masking' does not need to be inside the loop because we are doing bitwise operations. Though I suspect we are better off looking at things like this elsewhere, maybe where we do codegen for the reduction... Haven't looked at this at all yet. Let me know if you believe this is a good approach? I've ran regression tests and this hasn't broken anything so far... Kind regards, Andre PS: Once we do have lowering of BIT_FIELD_DECL's to BIT_FIELD_REF's earlier in the compiler I suspect we will require some further changes to the DR analysis part, but that's difficult to test right now.