This is an archive of the discontinued LLVM Phabricator instance.

[ARM,MVE] Add the `vshlcq` intrinsics.
ClosedPublic

Authored by simon_tatham on Mar 2 2020, 3:46 AM.

Details

Summary

The VSHLC instruction performs a left shift of a whole vector register
by an immediate shift count up to 32, shifting in new bits at the low
end from a GPR and delivering the shifted-out bits from the high end
back into the same GPR.

Since the instruction produces two outputs (the shifted vector
register and the output GPR of shifted-out bits), it has to be
instruction-selected in C++ rather than Tablegen.

Diff Detail

Event Timeline

simon_tatham created this revision.Mar 2 2020, 3:46 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptMar 2 2020, 3:46 AM
miyuki added a comment.Mar 2 2020, 5:55 AM

FYI: I have raised https://github.com/google/llvm-premerge-checks/issues/141 (the premerge check machinery failed to apply the patch, but this is not reflected in the build status).

clang-formatted the new C test file.

miyuki accepted this revision.Mar 3 2020, 8:47 AM

LGTM

This revision is now accepted and ready to land.Mar 3 2020, 8:47 AM
This revision was automatically updated to reflect the committed changes.