<div dir="ltr">Hi Toshi!<br><br><div class="gmail_quote"><div dir="ltr">On Tue, May 9, 2017 at 4:53 PM Toshiyasu Morita via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Still having trouble with generating AVX2 instructions.<br><br></div>I've tried setting the mattrs when generating the JIT:<br><br>  printf("getHostCPUFeatures(): %s\n", features);<br><br>  std::vector< std::string> machine_attrs;<br>  machine_attrs.push_back(features);<br><br>  std::string Error;<br>  EngineBuilder builder(std::move(Mod));<br>  builder.setEngineKind(EngineKind::JIT)<br>         .setErrorStr(&Error)<br>         .setOptLevel((CodeGenOpt::Level)options.OptLevel)<br>         .setCodeModel(unwrap(options.CodeModel))<br>         .setTargetOptions(targetOptions)<br>         .setMCPU(llvm::sys::getHostCPUName())<br>         .setMAttrs(machine_attrs);<br><br></div>where features is:<br><br>GetHostCPUFeatures(): +sse2,+cx16,+bmi2,+fsgsbase,+popcnt,+aes,+mmx,+xsave,+invpcid,+avx,+fma,+bmi,+rdrnd,+sse4.1,+sse4.2,+avx2,+sse,+lzcnt,+pclmul,+f16c,+ssse3,+cmov,+movbe,+xsaveopt,+sse3<br><br></div>Anything I am missing?<br><br></div>Do the module target-features override the MAttr, or the reverse?<br><br></div></div></blockquote><div><br></div><div>The features on the function will override the ones on the TargetMachine.</div><div><br></div><div>-eric</div></div></div>