<div dir="ltr">Hi all,<div><br></div><div>Recently I compiled the attached .c file using Clang with "-mavx2 -mfma -m32 -O3" optimization flags. </div><div><br></div><div>First I used -emit-llvm and inspected the LLVM IR (.ll file attached) and there are no vector instructions in the if.else BB in compressStream function. Then I got the assembly output of the file in it I can clearly see vector instructions in the compressStream function (.S file attached)</div><div><br></div><div>Neither the SLPVectorizer or the LoopVectorizer is however doing any vectorization (also checked it using -debug-only flag) as witnessed by the non-vectorized code in the attached .ll file. </div><div><br></div><div>Therefore, the vectorization should happen in the backend(?). </div><div><br></div><div>Can I know whether the x86 backend does additional vectorization of scalar code and if so in which passes?</div><div><br></div><div>Thank You.<br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Kind regards,<br>Charith Mendis<br><br>Graduate Student,<div>CSAIL,<br><div>Massachusetts Institute of Technology</div></div></div></div></div>
</div></div>