Some instructions such as multi-vector LD1 only accept a range
of PN8-PN15 predicate-as-counter. This new constraint allows more
refined parsing and better decision making when parsing these
instructions from ASM, instead of defaulting to Upa which incorrectly
uses the whole range of registers P0-P15 from the register class PPR.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
FYI @rsandifo-arm
llvm/docs/LangRef.rst | ||
---|---|---|
5000 | nit: upper | |
llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll | ||
78 | nit: can you find a more appropriate name? |
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
9993–10015 | nit: you could choose to use a StringSwitch for this, e.g. return StringSwitch<PredicateConstraint>(Constraint) .Case("Uph", PredicateConstraint::Uph) .Case("Upl", PredicateConstraint::Upl) .Case("Upa", PredicateConstraint::Upa) .Default(PredicateConstraint::Invalid); |
Comment Actions
@sdesmalen I had to make an additional changes to clang/lib/Basic/Targets/AArch64.cpp and clang/test/CodeGen/aarch64-sve-inline-asm-datatypes.c To get the constraint parsing from the clang level. It's pretty minor but thought I'd update the review before pushing in case you've anything to add.
nit: upper