This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Add MVE integer vector min/max instructions.
ClosedPublic

Authored by simon_tatham on May 30 2019, 8:20 AM.

Details

Summary

These form a small family of their own, to go with the floating-point
VMINNM/VMAXNM instructions added in a previous commit.

They introduce the first of many special cases in the mnemonic
recognition code, because VMIN with the E suffix used by the VPT
predication system needs to avoid being interpreted as the nonexistent
instruction 'VMI' with an ordinary 'NE' condition suffix.

Event Timeline

simon_tatham created this revision.May 30 2019, 8:20 AM
ostannard added inline comments.
llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
5943

Why is this a startswith check, I don't see any valid mnemonics with extra letters on the end.

Remastered patch to apply cleanly against current trunk.

miyuki added a subscriber: miyuki.Jun 11 2019, 5:54 AM
miyuki added inline comments.Jun 12 2019, 8:57 AM
llvm/lib/Target/ARM/ARMInstrMVE.td
766

These definitions can be combined into a multiclass.

  • Removed the pointless startswith (which I'll have to do in a lot of the rest of the series too)
  • Added multiclass as suggested
simon_tatham marked 2 inline comments as done.Jun 18 2019, 1:59 AM
ostannard added inline comments.Jun 18 2019, 2:06 AM
llvm/test/MC/ARM/mve-minmax.s
3

Why have you removed this? There are still ERROR-NOFP check lines, which are now unused.

Reinstated RUN: lines that vanished in a rebase error (sorry)

Renamed the instructions' Tablegen ids for consistency, in line with a
review comment @ostannard made on the followup patch D62672.

This revision is now accepted and ready to land.Jun 18 2019, 7:34 AM
This revision was automatically updated to reflect the committed changes.