Back end work for short vector SIMD packs
[sbcl.git] / src / compiler / x86-64 / insts.lisp
index 640fec0..533655b 100644 (file)
      ;; FIXME: might as well be COND instead of having to use #. readmacro
      ;; to hack up the code
      (case (sc-name (tn-sc thing))
+       #!+sb-simd-pack
+       (#.*oword-sc-names*
+        :oword)
        (#.*qword-sc-names*
         :qword)
        (#.*dword-sc-names*
       ((complex single-float)
          (setf constant (list :complex-single-float first)))
       ((complex double-float)
-         (setf constant (list :complex-double-float first)))))
+         (setf constant (list :complex-double-float first)))
+      #!+sb-simd-pack
+      (#+sb-xc-host nil
+       #-sb-xc-host simd-pack
+         (setf constant (list :sse (logior (%simd-pack-low first)
+                                           (ash (%simd-pack-high first)
+                                                64)))))))
   (destructuring-bind (type value) constant
     (ecase type
       ((:byte :word :dword :qword)