Hi all,I have vectorization problems and I really need your help.Here are the vectorization reports for each array notation in the code bellow: -Array Notation(1) : Vectorized -Array Notation(2) : Subscript too complex -Array Notation(3) : Existence of vector dependence -Array Notation(4) : Subscript too complex -Array Notatino(5) : Subscript too complex -Array Notation(6) : Existence of vector dependenceI tried using "restrict" on the pointers(i.e. int* restric p_p_data_), but didn't work.Is there any problem I'm missing?Thanks in advance![CPU Info] -Core2 Quad Q9400[OS Info] -WinXP Pro SP3[Compiler Info] -Composer XE 2011 Update7, Package ID:w_ccompxe_2011.7.258

class SomeClass { SomeClass(); ~SomeClass(); void Init(); void PreProcess(); void Process(); __declspec (vector) int GetDiff(int sub, int add) { return (add - sub); }; const byte* add_point_; const byte* subtract_point_; std::vector y_data_; std::vector x_data_; std::vector processed_data_; int* p_y_data_; int* p_x_data_; int* p_p_data_; }; void Init() { x_data_.resize(5000); y_data_.resize(5000); processed_data_.resize(5000); p_x_data_ = &x_data_.front(); p_y_data_ = &y_data_.front(); p_p_data_ = &processed_data_.front(); return; } void PreProcess() { int x_size = 5000; add_point_ = image_->base_address(); subtract_point_ = add_point_; // Array Notation(1) p_y_data_[0:x_size] = add_point_[0:x_size]; for (int y = 0; y < 4; y++) { // Array Notation(2) p_y_data_[0:x_size] += add_point_[0:x_size]; } return; } void Process() { int x_size = 5000; // Array Notation(3) p_y_data_[0:x_size] += GetDiff(subtract_point_[0:x_size], add_point_[0:x_size]); // Array Notation(4) p_x_data_[0:x_size] = p_y_data_[0:x_size]; x_size--; for (int x = 1; x < 4; x++) { // Array Notation(5) p_x_data_[0:x_size] += p_y_data_[x:x_size]; x_size--; } x_size -= 4; // Array Notation(6) p_p_data_[0:x_size] = GetDiff(p_x_data_[0:x_size], p_x_data_[settings_->df.block_width:x_size]); return; }