This is an archive of the discontinued LLVM Phabricator instance.

[SveEmitter] Implement zeroing of false lanes
ClosedPublic

Authored by sdesmalen on Apr 6 2020, 3:12 PM.

Details

Summary

This implements zeroing of false lanes for binary operations,
where instead of merging into the first operand vector (_m)
a select is placed on the first input vector. This approach
easily translates to the use of the zeroing movprfx instruction.

This patch also adds builtins for svabd, svadd, svdiv, svdivr,
svmax, svmin, svmul, svmulh, svub and svsubr.

Diff Detail

Event Timeline

sdesmalen created this revision.Apr 6 2020, 3:12 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 6 2020, 3:13 PM
Herald added a subscriber: tschuett. · View Herald Transcript

Maybe better to emit llvm.aarch64.sve.sel for now, if you're trying to avoid IR operations.

Otherwise looks fine.

sdesmalen updated this revision to Diff 257821.Apr 15 2020, 1:26 PM
  • Addressed review comment to use aarch64.sve.sel instead of select.
This revision is now accepted and ready to land.Apr 15 2020, 2:36 PM
This revision was automatically updated to reflect the committed changes.