If one will feed it to llc -arm-enable-ehabi then one will see that the .vsave entry contains spurious s18 register added to the register list. This is because post-ra scheduler adds bogus s18 impdef operand to VSTMDDB_UPD. Adding -disable-post-ra fixes this problem.
I can surely ignore imp-def operands in the ARM unwinding stuff emitter. But I think this is a symptom of some bug inside the scheduler or some passes around (I must admit, I have another testcase which is fails w/o -disable-post-ra and passes otherwise, but I failed to reduce it yet since it's several KLOCs of heavy vector NEON code).
Extended Description
Consider the attached .ll file.
If one will feed it to llc -arm-enable-ehabi then one will see that the .vsave entry contains spurious s18 register added to the register list. This is because post-ra scheduler adds bogus s18 impdef operand to VSTMDDB_UPD. Adding -disable-post-ra fixes this problem.
I can surely ignore imp-def operands in the ARM unwinding stuff emitter. But I think this is a symptom of some bug inside the scheduler or some passes around (I must admit, I have another testcase which is fails w/o -disable-post-ra and passes otherwise, but I failed to reduce it yet since it's several KLOCs of heavy vector NEON code).