<div dir="ltr">Good afternoon,<div><br></div><div>I'm working on modifying the Mips backend in order to add new functionalities. I've successfully implemented the intrinsics, but I want to recognize a pattern like this:</div><div><br></div><div>int seq[max];</div><div>int cnt = 0;</div><div><br></div><div>for (int i = 0; i < max; i++)</div><div>{</div><div><div>  for (int j = 0; i < 16; i++)</div><div>  {</div><div>    char hn = (seq[i] & (3<<(j*2)) >> (j*2);</div><div>    if (hn == 2)</div><div>     {</div><div>       cnt++;</div><div>     }</div><div>  } </div></div><div>}</div><div><br></div><div><br></div><div>and transform it into something like:</div><div><br></div><div><div>int seq[max];</div><div>int cnt = 0;</div><div><br></div><div>for (int i = 0; i < max; i++)</div><div>{</div><div><div> cnt += intrinsic(seq[i], 2); </div></div><div>}</div></div><div><br></div><div>Do you know what I can use to transform the loop? Or if exists something similar in LLVM? </div><div><br></div><div>Thanks,</div><div><br></div><div>Catello</div></div>