Write
(wz64 reg val x86 &key (regtype '*zmm-access*)) → x86
Upper bits: For XMM registers, upper
Function:
(defun wz64$inline (reg val x86 regtype) (declare (xargs :stobjs (x86))) (declare (type (unsigned-byte 5) reg) (type (unsigned-byte 64) val)) (declare (xargs :guard (vector-access-type-p regtype))) (b* ((data (the (unsigned-byte 512) (zmmi reg x86))) (regtype (the (unsigned-byte 3) regtype)) (data (case regtype (2 (loghead 128 data)) (3 (loghead 256 data)) (otherwise data))) (val (the (unsigned-byte 64) (n64 val)))) (!zmmi reg (part-install val data :low 0 :width 64) x86)))
Theorem:
(defthm x86p-wz64 (implies (x86p x86) (x86p (wz64 reg val x86 :regtype access))))