Current implementation of Check[HSDQ]Form predicates doesn’t handle virtual registers and therefore isn’t useful for pre-RA scheduling. Patch fixes this implementing two function predicates: CheckQForm for checking that instruction writes 128-bit NEON register and CheckFpOrNEON which checks that instruction writes FP register (any width). The latter supersedes Check[HSD]Form predicates which are not used individually.
OS Laboratory. Huawei Russian Research Institute. Saint-Petersburg
This isn't a very general function if it only checks operand 0. There are AArch64 instructions that I would count as FP that return in X/W registers (the fcvt's for example). Perhaps make it clean in the description, that it is designed for use in scheduling models and only checks operand 0.
I would move this to bellow the getLoadStoreImmIdx and isPairableLdStInst too, so that the "load/store" functions can be kept together.