This is an archive of the discontinued LLVM Phabricator instance.

[ARM][MVE] Add vector reduction intrinsics with two vector operands
ClosedPublic

Authored by miyuki on Dec 5 2019, 6:10 AM.

Details

Summary

This patch adds intrinsics for the following MVE instructions:

  • VABAV
  • VMLADAV, VMLSDAV
  • VMLALDAV, VMLSLDAV
  • VRMLALDAVH, VRMLSLDAVH

Each of the above 4 groups has a corresponding new LLVM IR intrinsic,
since the instructions cannot be easily represented using
general-purpose IR operations.

Diff Detail

Event Timeline

miyuki created this revision.Dec 5 2019, 6:10 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptDec 5 2019, 6:10 AM

Build result: pass - 60516 tests passed, 0 failed and 726 were skipped.

Log files: console-log.txt, CMakeCache.txt

MarkMurrayARM added inline comments.Dec 5 2019, 8:27 AM
clang/include/clang/Basic/arm_mve_defs.td
491

See D71066; I just used the numbers bare, so 0 or 1 not (u32 0) or (u32 1).

MarkMurrayARM accepted this revision.Dec 9 2019, 5:07 AM

This looks scary and fragile, but it seems to work, so OK.

This revision is now accepted and ready to land.Dec 9 2019, 5:07 AM
miyuki updated this revision to Diff 233350.Dec 11 2019, 6:36 AM

Use TableGen patterns for ISel when possible

Unit tests: pass. 60714 tests passed, 0 failed and 726 were skipped.

clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or apply this patch.

Build artifacts: console-log.txt, CMakeCache.txt, clang-format.patch, test-results.xml, diff.json

miyuki updated this revision to Diff 233385.Dec 11 2019, 8:58 AM

Fix formatting

Unit tests: pass. 60719 tests passed, 0 failed and 726 were skipped.

clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or apply this patch.

Build artifacts: console-log.txt, CMakeCache.txt, clang-format.patch, test-results.xml, diff.json

MarkMurrayARM accepted this revision.Dec 13 2019, 3:47 AM

Tiny observation of types - fix only if you feel like it.

clang/include/clang/Basic/arm_mve.td
875

Types again?

884

Types again?

miyuki marked an inline comment as done.Dec 13 2019, 5:16 AM
miyuki added inline comments.
clang/include/clang/Basic/arm_mve.td
875

I don't it's worth adding a new list to T if it is only used in a single place.

This revision was automatically updated to reflect the committed changes.