This is an archive of the discontinued LLVM Phabricator instance.

[X86] test/testn intrinsics lowering to IR. llvm part.
ClosedPublic

Authored by uriel.k on Oct 10 2017, 8:06 AM.

Details

Summary

Added autoUpgrade support and removed builtins from llvm.

this commit will be submitted only after D38732 will submitted
as it depends on the IR code pattern that being folded to TESTM/NM DAG nodes.

There is another revision that deals the clang side: D38737

Diff Detail

Event Timeline

uriel.k created this revision.Oct 10 2017, 8:06 AM
uriel.k edited the summary of this revision. (Show Details)Oct 10 2017, 8:11 AM
RKSimon edited edge metadata.Oct 10 2017, 10:01 AM

*-fast-isel.ll tests to match the clang *-builtins tests?

uriel.k updated this revision to Diff 119074.Oct 15 2017, 4:37 AM

Added fast-isel tests.
Note that for avx512bw there is an open bug that responsible for that huge code size.

craig.topper added inline comments.Oct 16 2017, 4:27 PM
lib/IR/AutoUpgrade.cpp
829

'atleast' should be two words

831

Line up the last argument with the end of the opening parenthese above

843

These two lines are indented one space too far.

875–876

Move this bitcast into the ApplyX86MaskOn1BitsVec. The same one appears at the second call site.

1050

Extract space between Pred and comma

RKSimon added inline comments.Nov 4 2017, 10:55 AM
test/CodeGen/X86/avx512bw-intrinsics-fast-isel.ll
1908

Drop the attributes

1942

Drop the attributes

uriel.k updated this revision to Diff 121697.Nov 6 2017, 1:41 AM
uriel.k marked 5 inline comments as done.
craig.topper accepted this revision.Nov 6 2017, 10:45 AM

LGTM

lib/IR/AutoUpgrade.cpp
847

You can use Builder.getIntNTy(std::max(NumElts, 8U)) here and you won't need the Context argument. Builder already has a reference to the Context internally and getIntNTy is just a helper to call IntegerType::get using that reference

This revision is now accepted and ready to land.Nov 6 2017, 10:45 AM
This revision was automatically updated to reflect the committed changes.