See bug 35730: https://bugs.llvm.org/show_bug.cgi?id=35730
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Please add negative tests: (a) VDST present but none GLC and (b) none VDST but GLC presents. Otherwise fine.
Comment Actions
Added a few negative tests and one positive.
Note that the following code is assembled ok, though 'glc' is omitted:
flat_atomic_cmpswap v0, v[1:2], v[3:4]
This is due to the way llvm handles optional operands. In this case tablegen-generated operand matcher tries to match (expected) 'offset' to an empty list of actual operands and failed doing that. However 'offset' is an optional operand so the match is considered successful.
This would not be easy to fix, and I think we should presume this a 'feature' :-)
Comment Actions
I think this is a low-priority bug because this does not comply to (6.2) from Bugzilla 35730. Let's update that Bugzllia but keep it open after this fix is submitted.