This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Convert more invalid NEON immediate loads
ClosedPublic

Authored by miyuki on Mar 14 2018, 7:16 AM.

Details

Summary

Currently the LLVM MC assembler is able to convert e.g.

vmov.i32 d0, #0xabababab

(which is technically invalid) into a valid instruction

vmov.i8 d0, #0xab

this patch adds support for vmov.i64 and for cases with the resulting
load types other than i8, e.g.:

vmov.i32 d0, #0xab00ab00 ->
vmov.i16 d0, #0xab00

Diff Detail

Repository
rL LLVM

Event Timeline

miyuki created this revision.Mar 14 2018, 7:16 AM

Nice cleanup!

The patch is looking really good. I think you can just rename vmov-vmvn-byte-replicate.s to vmov-vmvn-replicate.s and put all the tests together.

Just make sure you have the same number of check lines as you have tests and it should be good to go, thanks!

test/MC/ARM/vmov-vmvn-byte-replicate.s
28 ↗(On Diff #138348)

Didn't add check lies for those

39 ↗(On Diff #138348)

or those

miyuki updated this revision to Diff 138530.Mar 15 2018, 4:53 AM

Merged two test cases, added missing @ CHECKs

rengolin accepted this revision.Mar 15 2018, 5:15 AM

LGTM, thanks!

This revision is now accepted and ready to land.Mar 15 2018, 5:15 AM
This revision was automatically updated to reflect the committed changes.
llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp