This is an archive of the discontinued LLVM Phabricator instance.

[AVX512] Enable intrinsics for vexp2{ps/pd}
Needs RevisionPublic

Authored by AsafBadouh on Nov 4 2014, 3:01 AM.

Details

Summary

Enable intrinsics for vexp2{ps/pd}

Diff Detail

Event Timeline

AsafBadouh updated this revision to Diff 15750.Nov 4 2014, 3:01 AM
AsafBadouh retitled this revision from to [AVX512] Enable intrinsics for vexp2{ps/pd}.
AsafBadouh updated this object.
AsafBadouh edited the test plan for this revision. (Show Details)
AsafBadouh added reviewers: delena, anemet, rob.khasanov.
AsafBadouh set the repository for this revision to rL LLVM.
anemet edited edge metadata.Nov 4 2014, 9:59 AM

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:

  1. Lower the intrinsics to target-specific SDNodes in LowerINTRINSIC_WO_CHAIN
  2. Add masking support to your instruction by deriving from AVX512_maskable

Also preferably:

  1. Create a multiclass to hide the PS/PD duplication
  2. 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

delena edited edge metadata.Nov 4 2014, 11:23 PM

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
anemet requested changes to this revision.Apr 8 2016, 4:57 PM
anemet edited edge metadata.

Very old review, requesting change to move it off my active queue.

This revision now requires changes to proceed.Apr 8 2016, 4:57 PM
delena accepted this revision.Apr 9 2016, 12:01 AM
delena edited edge metadata.