[llvm] [AArch64] Separate PNR into its own Register Class (PR #65306)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 12 02:19:16 PDT 2023


================
@@ -3658,6 +3658,32 @@ void AArch64InstrInfo::copyPhysReg(MachineBasicBlock &MBB,
     return;
   }
 
+  if (AArch64::PNRRegClass.contains(DestReg) &&
+      AArch64::PPRRegClass.contains(SrcReg)) {
+    assert(Subtarget.hasSVEorSME() && "Unexpected SVE register.");
----------------
david-arm wrote:

I noticed lower down you assert with

 assert((Subtarget.hasSVE2p1() || Subtarget.hasSME2()) &&
              "Unexpected register load without SVE2p1 or SME2");

and I think it makes sense to assert that here for the COPY instructions too, since predicate-as-counter registers were introduced in SVE2.1.

https://github.com/llvm/llvm-project/pull/65306


More information about the llvm-commits mailing list