master: Remove ymm-reg zmm-reg SCs

stassats via Sbcl-commits <[email protected]> Wed, 01 Jul 2026 14:35:13 +0000
Newsgroups gmane.lisp.steel-bank.cvs
Message-ID <[email protected]>
The branch "master" has been updated in SBCL:
       via  23aa0d832b2c38e1dca8c1f09c66c1d7f8494522 (commit)
      from  05b1b824122b83340d381b2b8d1a1f4966de5979 (commit)

- Log -----------------------------------------------------------------
commit 23aa0d832b2c38e1dca8c1f09c66c1d7f8494522
Author: Stas Boukarev <[email protected]>
Date:   Wed Jul 1 17:32:00 2026 +0300

    Remove ymm-reg zmm-reg SCs
    
    Shouldn't be used, int-avx2/512-reg exist for that.
---
 src/code/debug-int.lisp             |  6 +++---
 src/compiler/x86-64/alloc.lisp      |  3 +--
 src/compiler/x86-64/avx2-insts.lisp |  4 ++--
 src/compiler/x86-64/insts.lisp      | 10 ++++------
 src/compiler/x86-64/macros.lisp     |  4 ++--
 src/compiler/x86-64/vm.lisp         |  6 ------
 6 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp
index bbfd7dce3..c313f12bf 100644
--- a/src/code/debug-int.lisp
+++ b/src/code/debug-int.lisp
@@ -2493,7 +2493,7 @@
           (sap-ref-double nfp (number-stack-offset 0))
           (sap-ref-double nfp (number-stack-offset 8)))))
       #+sb-simd-pack-256
-      ((#.sb-vm::ymm-reg-sc-number #.sb-vm::int-avx2-reg-sc-number)
+      (#.sb-vm::int-avx2-reg-sc-number
        (escaped-float-value simd-pack-256-int))
       #+sb-simd-pack-256
       ((#.sb-vm::single-avx2-reg-sc-number)
@@ -2530,7 +2530,7 @@
           (sap-ref-double nfp (number-stack-offset 16))
           (sap-ref-double nfp (number-stack-offset 24)))))
       #+sb-simd-pack-512
-      ((#.sb-vm::zmm-reg-sc-number #.sb-vm::int-avx512-reg-sc-number)
+      (#.sb-vm::int-avx512-reg-sc-number
        (escaped-float-value simd-pack-512-int))
       #+sb-simd-pack-512
       ((#.sb-vm::single-avx512-reg-sc-number)
@@ -2782,7 +2782,7 @@
            (setf (sap-ref-double nfp (number-stack-offset 0)) a
                  (sap-ref-double nfp (number-stack-offset 8)) b))))
       #+sb-simd-pack-256
-      ((#.sb-vm::ymm-reg-sc-number #.sb-vm::int-avx2-reg-sc-number)
+      (#.sb-vm::int-avx2-reg-sc-number
        (set-escaped-float-value simd-pack-256-int value))
       #+sb-simd-pack-256
       ((#.sb-vm::single-avx2-reg-sc-number)
diff --git a/src/compiler/x86-64/alloc.lisp b/src/compiler/x86-64/alloc.lisp
index 61b549b8a..6963b277e 100644
--- a/src/compiler/x86-64/alloc.lisp
+++ b/src/compiler/x86-64/alloc.lisp
@@ -219,8 +219,7 @@
       (flet ((used-p (tn)
                (do ((tn tn (sb-c::tn-next tn)))
                    ((null tn))
-                 (when (sc-is tn zmm-reg
-                              int-avx512-reg
+                 (when (sc-is tn int-avx512-reg
                               double-avx512-reg
                               single-avx512-reg)
                    (return-from zmm-registers-used-p t)))))
diff --git a/src/compiler/x86-64/avx2-insts.lisp b/src/compiler/x86-64/avx2-insts.lisp
index 6a4403cc2..917ca858d 100644
--- a/src/compiler/x86-64/avx2-insts.lisp
+++ b/src/compiler/x86-64/avx2-insts.lisp
@@ -1500,11 +1500,11 @@ REG is the source (encoded in ModR/M.r/m).
                                  :w ,w
                                  :l ,(ecase sizing
                                        ((xmm/ymm-vmx/y xmm/ymm-vmx)
-                                        `(if (is-ymm-id-p (reg-id dst))
+                                        `(if (ymm-register-p dst)
                                              1
                                              0))
                                        (xmm-vmx/y
-                                        `(if (eq (sc-name (tn-sc (ea-index vm))) 'ymm-reg)
+                                        `(if (ymm-register-p (ea-index vm))
                                              1
                                              0)))
                                  :vm t)))))
diff --git a/src/compiler/x86-64/insts.lisp b/src/compiler/x86-64/insts.lisp
index 7603b9d1e..881adb238 100644
--- a/src/compiler/x86-64/insts.lisp
+++ b/src/compiler/x86-64/insts.lisp
@@ -21,9 +21,9 @@
   (import 'sb-assem::&prefix)
   ;; Imports from SB-VM into this package
   #+sb-simd-pack-256
-  (import '(sb-vm::ymm-reg sb-vm::int-avx2-reg sb-vm::double-avx2-reg sb-vm::single-avx2-reg))
+  (import '(sb-vm::int-avx2-reg sb-vm::double-avx2-reg sb-vm::single-avx2-reg))
   #+sb-simd-pack-512
-  (import '(sb-vm::zmm-reg sb-vm::int-avx512-reg sb-vm::double-avx512-reg sb-vm::single-avx512-reg))
+  (import '(sb-vm::int-avx512-reg sb-vm::double-avx512-reg sb-vm::single-avx512-reg))
   (import '(sb-vm::tn-byte-offset sb-vm::tn-reg sb-vm::reg-name
             sb-vm::frame-byte-offset sb-vm::rip-tn sb-vm::rbp-tn
             sb-vm::gpr-tn-p sb-vm::stack-tn-p sb-c::tn-reads sb-c::tn-writes
@@ -1163,14 +1163,12 @@
                   ((eq (sb-name (sc-sb (tn-sc operand))) 'registers)
                    (tn-reg operand))
                   ((memq (sc-name (tn-sc operand))
-                         '(zmm-reg
-                           int-avx512-reg
+                         '(int-avx512-reg
                            double-avx512-reg
                            single-avx512-reg))
                    (get-fpr :zmm (tn-offset operand)))
                   ((memq (sc-name (tn-sc operand))
-                         '(ymm-reg
-                           int-avx2-reg
+                         '(int-avx2-reg
                            double-avx2-reg
                            single-avx2-reg))
                    (get-fpr :ymm (tn-offset operand)))
diff --git a/src/compiler/x86-64/macros.lisp b/src/compiler/x86-64/macros.lisp
index d468bf3cd..498c3b3fd 100644
--- a/src/compiler/x86-64/macros.lisp
+++ b/src/compiler/x86-64/macros.lisp
@@ -36,7 +36,7 @@
        (aver (xmm-tn-p src))
        (inst movaps dst src))
       #+sb-simd-pack-256
-      ((ymm-reg int-avx2-reg)
+      (int-avx2-reg
        (aver (xmm-tn-p src))
        (inst vmovdqa dst src))
       #+sb-simd-pack-256
@@ -45,7 +45,7 @@
        (inst vmovaps dst src))
       ;; fixme512: check if this is correct
       #+sb-simd-pack-512
-      ((zmm-reg int-avx512-reg)
+      (int-avx512-reg
        (aver (xmm-tn-p src))
        (inst vmovdqu dst src))
       #+sb-simd-pack-512
diff --git a/src/compiler/x86-64/vm.lisp b/src/compiler/x86-64/vm.lisp
index 7b9ec7f9e..173465b06 100644
--- a/src/compiler/x86-64/vm.lisp
+++ b/src/compiler/x86-64/vm.lisp
@@ -377,10 +377,6 @@
                   :save-p t
                   :alternate-scs (single-sse-stack))
   #+sb-simd-pack-256
-  (ymm-reg float-registers :locations #.*float-regs*)
-  ;; These next 3 should probably be named to YMM-{INT,SINGLE,DOUBLE}-REG
-  ;; but I think there are 3rd-party libraries that expect these names.
-  #+sb-simd-pack-256
   (int-avx2-reg float-registers
                :locations #.*float-regs*
                :constant-scs (fp-immediate)
@@ -400,8 +396,6 @@
                   :alternate-scs (single-avx2-stack))
   ;; ZMM SCs use all 32 registers (16-31 require EVEX encoding)
   #+sb-simd-pack-512
-  (zmm-reg float-registers :locations #.*zmm-regs*)
-  #+sb-simd-pack-512
   (int-avx512-reg float-registers
                   :locations #.*zmm-regs*
                   :constant-scs (fp-immediate)

-----------------------------------------------------------------------


hooks/post-receive
-- 
SBCL