Currently fmov #0 with a vector destination is handle incorrectly and results in fmov #-1.9375 being emitted but should instead give an error. This is due to the way we cope with fmov #0 with a scalar destination being an alias of fmov zr, so fix this by actually doing it through an alias.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp | ||
---|---|---|
2125 ↗ | (On Diff #94851) | Because that's what the MatchTable in AArch64GenAsmMatcher.inc expects for the #0.0 in the fmov InstAlias. After a bit of poking around it looks like this is because the AsmParserVariants defined in AArch64.td sets '.' to be a break character which starts a new token, probably so that the instruction qualifiers (which start with a '.') get treated as operands not as part of the mnemonic. |
Comment Actions
LGTM. Thanks!
lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp | ||
---|---|---|
2125 ↗ | (On Diff #94851) | Right, I expected as much. |