master: Fix %make-simd-pack-512-single
stassats via Sbcl-commits <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 19040616e7e04ff181eefbfc126134b98d7aa571 (commit)
from d8768206569db5aeac11cde0ffad8035b72c472f (commit)
- Log -----------------------------------------------------------------
commit 19040616e7e04ff181eefbfc126134b98d7aa571
Author: Stas Boukarev <[email protected]>
Date: Wed Aug 26 01:14:39 2026 +0300
Fix %make-simd-pack-512-single
Don't overwrite the inputs before they are used.
---
src/compiler/x86-64/simd-pack-512.lisp | 12 +++---------
tests/simd-pack-512-kmasks.pure.lisp | 21 ---------------------
2 files changed, 3 insertions(+), 30 deletions(-)
diff --git a/src/compiler/x86-64/simd-pack-512.lisp b/src/compiler/x86-64/simd-pack-512.lisp
index 5f5a1433e..4c2f7111f 100644
--- a/src/compiler/x86-64/simd-pack-512.lisp
+++ b/src/compiler/x86-64/simd-pack-512.lisp
@@ -631,16 +631,10 @@
single-float single-float single-float single-float
single-float single-float single-float single-float
single-float single-float single-float single-float)
- (:results (dst :scs (single-avx512-reg)))
(:result-types simd-pack-512-single)
- ;; (:temporary (:sc single-avx512-reg) t0 t1 t2 t3)
- ;; temporaries explicitly in float16, float17, float18, and float19 regs
- ;; avoids allocator putting temps in the lower zmm 16-regs, so we don't
- ;; need a new sc class, which is a scarce resource in SBCL (only 60)
- (:temporary (:sc single-avx512-reg :offset 16) t0)
- (:temporary (:sc single-avx512-reg :offset 17) t1)
- (:temporary (:sc single-avx512-reg :offset 18) t2)
- (:temporary (:sc single-avx512-reg :offset 19) t3)
+ (:results (dst :scs (single-avx512-reg) :from (:argument 4)))
+ (:result-types simd-pack-512-single)
+ (:temporary (:sc single-avx512-reg) t0 t1 t2 t3)
(:generator 5
(inst vunpcklps t0 p0 p1)
(inst vunpcklps t1 p2 p3)
diff --git a/tests/simd-pack-512-kmasks.pure.lisp b/tests/simd-pack-512-kmasks.pure.lisp
index f7ff2c9f9..3a9e2446a 100644
--- a/tests/simd-pack-512-kmasks.pure.lisp
+++ b/tests/simd-pack-512-kmasks.pure.lisp
@@ -264,27 +264,6 @@
(assert (not (search "ALLOC" text)))
(assert (not (search "KMOVQ" text)))))
-(with-test (:name :destroyed-c-registers-include-kmasks)
- (let* ((vm (find-package "SB-VM"))
- (fun (and vm (find-symbol "DESTROYED-C-REGISTERS" vm)))
- (forms (and fun (funcall fun))))
- (when (and fun forms)
- (flet ((mask-temp-p (form)
- (and (listp form)
- (eq (first form) :temporary)
- (let ((spec (second form)))
- (and (listp spec)
- (eq (getf (cdr spec) :sc) 'mask-reg))))))
- (let ((mask-temps (remove-if-not #'mask-temp-p forms)))
- (assert (= (length mask-temps) 7))
- (assert
- (equal
- (sort (mapcar (lambda (form)
- (getf (cdr (second form)) :offset))
- mask-temps)
- #'<)
- '(1 2 3 4 5 6 7))))))))
-
(with-test (:name :avx512-state-tn-p)
(let* ((vm (find-package "SB-VM"))
(c (find-package "SB-C"))
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL