Enable intrinsics for vexp2{ps/pd}
Details
Diff Detail
Event Timeline
Hi Asaf,
Please always use full context for the diffs (http://llvm.org/docs/Phabricator.html#requesting-a-review-via-the-web-interface).
I know that you only followed rsqrt and rcp precedence but that is not how we add AVX512 intrinsic support these days. You probably want to look a few of my recent patches for details but this is the basic idea:
- Lower the intrinsics to target-specific SDNodes in LowerINTRINSIC_WO_CHAIN
- Add masking support to your instruction by deriving from AVX512_maskable
Also preferably:
- Create a multiclass to hide the PS/PD duplication
- Use X86VectorVTInfo to improve readability
Try to work with smaller patches and separate those that don't have functional changes in order to minimize the size of patches that do have functional changes.
Hopefully this is clear. Let me know if you need an sample patchset.
Thanks,
Adam
Hi Adam,
Lower the intrinsics to target-specific SDNodes in LowerINTRINSIC_WO_CHAIN
We don't need LowerINTRINSIC_WO_CHAIN in this case, because we don't want to invent SDNode for something that reachable via intrinsics only and can't be optimized by LLVM on any stage.
So I suppose that direct mapping from intrinsic to instruction is the right way in this case.
Add masking support to your instruction by deriving from AVX512_maskable
Asaf is doing ramp-up now and we planned to start with a small simple patch and then extend it to masks and to SAE/CURRENT_DIRECTION forms.
Use X86VectorVTInfo to improve readability
Unlike other instructions, these 3 ERI instructions don't have 128 and 256 bit forms, so X86VectorVTInfo will not give too much, but we can check whether the code looks better with it.
Thank you.
- Elena