<div dir="ltr">I'm guessing AggressiveInstCombine only runs once in the pipeline and its probably before the vectorizers. Its existing transforms probably output things the vectorizer can understand and vectorize. In your case you're fully dependent on vectorized code.<div><br></div><div>We don't like to form target specific intrinsics in the middle end pipeline. We'd prefer to do something in the X86 specific IR pipeline or Machine IR pipeline run by llc. Or have a generic concept in IR that we can express like llvm.ctlz, llvm.cttz, llvm.popcnt or llvm.bitreverse. We have methods in TargetTransformInfo to query for targets supporting them or in the worst case we're able to generate reasonable code if the target doesn't support it natively.</div><div><br></div><div>I'll try to point some more people here at Intel towards this thread.<br><div><br></div><div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 18, 2020 at 11:30 AM Adrien Guinet 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 5/18/20 8:24 PM, Craig Topper wrote:<br>
> I can tell you that your avx512 issue is that v64i8 gfni instructions also<br>
> require avx512bw to be enabled to make v64i8 a supported type. The C<br>
> intrinsics handling in the front end know this rule. But since you<br>
> generated your own intrinsics you bypassed that.<br>
<br>
Indeed that's the issue... I was stick with what Intel announces here<br>
(<a href="https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=gf2p&expand=2907" rel="noreferrer" target="_blank">https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=gf2p&expand=2907</a>), but<br>
I guess I should have checked the C intrinsics.<br>
<br>
I will fix my code to verify the presence of avx512bw if I ever need v64i8.<br>
<br>
Thanks for the hint!<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>