This is extremely ugly; the right solution is to implement EXTRACT_SUBREG_TO_REGCLASS, and use it here. Just posting this as a proof of concept, in case anyone else was wondering what the issue was in D46655.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Apropos, why is FPR8 defined as untyped and not i8 below?
def FPR8 : RegisterClass<"AArch64", [untyped], 8, (sequence "B%u", 0, 31)>
Comment Actions
i8 isn't considered a legal type by the AArch64ISelLowering, so it will never show up in the input to the instruction selector. Given that, I'm not sure it's really meaningful to say i8 maps to any specific register class.
But I guess it wouldn't do any harm to list i8 as part of FPR8? At least, I can't think of any other effects.