This is an archive of the discontinued LLVM Phabricator instance.

[SveEmitter] Builtins for SVE matrix multiply `mmla`.
ClosedPublic

Authored by fpetrogalli on May 8 2020, 11:20 AM.

Details

Summary

Guarded by __ARM_FEATURE_SVE_MATMUL_INT8:

  • svmmla_u32
  • svmmla_s32
  • svusmmla_s32

Guarded by __ARM_FEATURE_SVE_MATMUL_FP32:

  • svmmla_f32

Guarded by __ARM_FEATURE_SVE_MATMUL_FP64:

  • svmmla_f64

Diff Detail

Event Timeline

fpetrogalli created this revision.May 8 2020, 11:20 AM

I replaced the lines Signed = !Signed in the tablegen emitter with Signed = false.

sdesmalen added inline comments.May 11 2020, 8:55 AM
clang/include/clang/Basic/arm_sve.td
75

Can you phrase this like e and move it below e as well:

1/4 width unsigned elements, 4 x element count
1240

nit: please fix the alignment like how this is done for the other definitions.

clang/lib/CodeGen/CGBuiltin.cpp
7988 ↗(On Diff #262923)

unnecessary change, please remove.

clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_matmul_fp32.c
2

nit: These RUN lines no longer match all the other ACLE tests (with the added newlines)

fpetrogalli marked 4 inline comments as done.

Thank you for the review @sdesmalen, I have addressed all your comments.

Francesco

Adding some text here as phabricator refuses to submit with an empty comment...

fpetrogalli edited the summary of this revision. (Show Details)May 11 2020, 12:12 PM
sdesmalen accepted this revision.May 14 2020, 2:10 AM

LGTM!

clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mmla.c
18

nit: please remove the whitespace between the commas (to make it similar to the other tests)

This revision is now accepted and ready to land.May 14 2020, 2:10 AM
fpetrogalli marked 2 inline comments as done.

Thank you for the review @sdesmalen!

Francesco

fpetrogalli added inline comments.May 14 2020, 1:14 PM
clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mmla.c
18

Done. May I ask the reason why this formatting is preferred? The command git clang-format prefers the one with spaces...

This revision was automatically updated to reflect the committed changes.