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

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 13 08:10:24 PDT 2023


================
@@ -0,0 +1,35 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+# RUN: llc -o - %s -mtriple=aarch64 -verify-machineinstrs -run-pass=postrapseudos -mattr=+sme2 | FileCheck %s
+--- |
+  target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
+  target triple = "aarch64"
+
+  define target("aarch64.svcount") @ptrue_d() {
+    %res = call target("aarch64.svcount") @llvm.aarch64.sve.ptrue.c64()
+    ret target("aarch64.svcount") %res
+  }
+
+  declare target("aarch64.svcount") @llvm.aarch64.sve.ptrue.c64()
+
+...
+---
+name:            ptrue_d
+alignment:       4
+tracksRegLiveness: true
+tracksDebugUserValues: true
+frameInfo:
+  maxAlignment:    1
+  maxCallFrameSize: 0
+machineFunctionInfo:
+  hasRedZone:      false
+body:             |
+  bb.0 (%ir-block.0):
+    ; CHECK-LABEL: name: ptrue_d
+    ; CHECK: renamable $pn8 = PTRUE_C_D
+    ; CHECK-NEXT: $p0 = ORR_PPzPP $p8, $p8, killed $p8, implicit-def $pn8
----------------
sdesmalen-arm wrote:

`, implicit-def $pn8` isn't right, because it's not defined. `$p0` is defined and you could add `$pn0` as an implicit-def, but not `$pn8`.

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


More information about the llvm-commits mailing list