All instructions that can raise fp exceptions also read FPCR, with the only other instructions that interact with it being the MSR/MRS to write/read FPCR.
Introducing an FPCR register also requires adjusting invalidateWindowsRegisterPairing in AArch64FrameLowering.cpp to use the encoded value of registers instead of their enum value, as the enum value is based on the alphabetical order of register names and now FPCR is placed between FP and LR.
This change unfortunately means a large number of mir tests need to be adjusted due to instructions now requiring an implicit fpcr operand to be present.
I don't know this code well, but just looking at this if statement in isolation, in the case where Reg1==FP, the previous version of the condition would have required Reg2==LR, whereas this one will accept either Reg2==LR or Reg2=FPCR.
Or is there some condition at the call sites which means nothing but GPRs will ever be passed to this function in the first place, so that the (FP,FPCR) pair will never trigger that false positive?