Write
(wz32 reg val x86 &key (regtype '*zmm-access*)) → x86
Upper bits: For XMM registers, upper
Function:
(defun wz32$inline (reg val x86 regtype) (declare (xargs :stobjs (x86))) (declare (type (unsigned-byte 5) reg) (type (unsigned-byte 32) 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 (n32 (the (unsigned-byte 32) val)))) (!zmmi reg (part-install val data :low 0 :width 32) x86)))
Theorem:
(defthm x86p-wz32 (implies (x86p x86) (x86p (wz32 reg val x86 :regtype access))))