Add Loop-Invariant Code Motion
Add register tiling optimization
Add basic vectorizer module
Implement data alignment and padding
Implement outer-product vectorisation