[sb-simd-cvs] CVS update: sb-simd/generate-sse-instructions.lisp sb-simd/.cvsignore
Risto Laakso
rlaakso at common-lisp.net
Mon Aug 8 10:35:39 UTC 2005
Update of /project/sb-simd/cvsroot/sb-simd
In directory common-lisp.net:/tmp/cvs-serv18920
Modified Files:
generate-sse-instructions.lisp .cvsignore
Log Message:
..
Date: Mon Aug 8 12:35:38 2005
Author: rlaakso
Index: sb-simd/generate-sse-instructions.lisp
diff -u sb-simd/generate-sse-instructions.lisp:1.1.1.1 sb-simd/generate-sse-instructions.lisp:1.2
--- sb-simd/generate-sse-instructions.lisp:1.1.1.1 Fri Aug 5 15:13:29 2005
+++ sb-simd/generate-sse-instructions.lisp Mon Aug 8 12:35:37 2005
@@ -4,6 +4,98 @@
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/26568.pdf
+
+TODO:
+
+CMPPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
+CMPPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
+CMPSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
+CMPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
+COMISD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
+COMISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
+CVTDQ2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
+CVTDQ2PS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
+CVTPD2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
+CVTPD2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
+CVTPD2PS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
+CVTPI2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
+CVTPI2PS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
+CVTPS2DQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
+CVTPS2PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
+CVTPS2PI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
+CVTSD2SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
+CVTSD2SS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
+CVTSI2SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
+CVTSI2SS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
+CVTSS2SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
+CVTSS2SI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
+CVTTPD2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
+CVTTPD2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
+CVTTPS2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
+CVTTPS2PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
+CVTTSD2SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
+CVTTSS2SI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
+FXRSTOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
+FXSAVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
+HADDPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
+HADDPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
+HSUBPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
+HSUBPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
+LDDQU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
+LDMXCSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
+MASKMOVDQU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
+MOVAPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
+MOVAPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
+MOVD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
+MOVDDUP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
+MOVDQ2Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
+MOVDQA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
+MOVDQU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
+MOVHLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
+MOVHPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
+MOVHPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
+MOVLHPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
+MOVLPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
+MOVLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
+MOVMSKPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
+MOVMSKPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
+MOVNTDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
+MOVNTPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
+MOVNTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
+MOVQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
+MOVQ2DQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
+MOVSD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
+MOVSHDUP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
+MOVSLDUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
+MOVSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
+
+PEXTRW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
+PINSRW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
+
+PSHUFD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
+PSHUFHW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
+PSHUFLW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
+PSLLD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
+PSLLDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
+PSLLQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
+PSLLW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
+PSRAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
+PSRAW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
+PSRLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
+PSRLDQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
+PSRLQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
+PSRLW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
+
+SHUFPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
+SHUFPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
+STMXCSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
+UCOMISD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
+UCOMISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
+UNPCKHPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
+UNPCKHPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
+UNPCKLPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
+UNPCKLPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
+
|#
(declaim (optimize (debug 3)))
@@ -16,8 +108,7 @@
(defun gen-ops (&optional (stream t))
- ;; single prec packed sse
- ;;; like :
+ ;;; instructions like:
;;; ADDPS xmm1, xmm2/mem128 0F 58 /r
(loop for (inst . ops) in
'(
@@ -36,6 +127,7 @@
(sqrtps #x0F #x51)
(subps #x0F #x5C)
(xorps #x0F #x57)
+
;; double precision float
(addpd #x66 #x0F #x58)
(addsubpd #x66 #x0F #xD0)
@@ -46,11 +138,104 @@
(minpd #x66 #x0F #x5D)
(mulpd #x66 #x0F #x59)
(orps #x66 #x0F #x56)
- (rcppd #x66 #x0F #x53)
- (rsqrtpd #x66 #x0F #x52)
(sqrtpd #x66 #x0F #x51)
(subpd #x66 #x0F #x5C)
(xorpd #x66 #x0F #x57)
+
+ ;; scalar double precision float
+ (addsd #xF2 #x0F #x58)
+ (divsd #xF2 #x0F #x5E)
+ (maxsd #xF2 #x0F #x5F)
+ (minsd #xF2 #x0F #x5D)
+ (mulsd #xF2 #x0F #x59)
+ (sqrtsd #xF2 #x0F #x51)
+ (subsd #xF2 #x0F #x5C)
+
+ ;; scalar single precision float
+ (addss #xF3 #x0F #x58)
+ (divss #xF3 #x0F #x5E)
+ (maxss #xF3 #x0F #x5F)
+ (minss #xF3 #x0F #x5D)
+ (mulss #xF3 #x0F #x59)
+ (rcpss #xF3 #x0F #x53)
+ (rsqrtss #xF3 #x0F #x52)
+ (sqrtss #xF3 #x0F #x51)
+ (subss #xF3 #x0F #x5C)
+
+ ;; packed integer
+ (packssdw #x66 #x0F #x6B)
+ (packsswb #x66 #x0F #x63)
+ (packuswb #x66 #x0F #x67)
+
+ (paddb #x66 #x0F #xFC)
+ (paddd #x66 #x0F #xFE)
+ (paddq #x66 #x0F #xD4)
+ (paddsb #x66 #x0F #xEC)
+ (paddsw #x66 #x0F #xED)
+ (paddusb #x66 #x0F #xDC)
+ (paddusw #x66 #x0F #xDD)
+ (paddw #x66 #x0F #xFD)
+
+ (pand #x66 #x0F #xDB)
+ (pandn #x66 #x0F #xDF)
+
+ (pavgb #x66 #x0F #xE0)
+ (pavgw #x66 #x0F #xE3)
+
+ (pcmpeqb #x66 #x0F #x74)
+ (pcmpeqd #x66 #x0F #x76)
+ (pcmpeqw #x66 #x0F #x75)
+ (pcmpgtb #x66 #x0F #x64)
+ (pcmpgtd #x66 #x0F #x66)
+ (pcmpgtw #x66 #x0F #x65)
+
+ (pmaddwd #x66 #x0F #xF5)
+
+ (pmaxsw #x66 #x0F #xEE)
+ (pmaxub #x66 #x0F #xDE)
+
+ (pminsw #x66 #x0F #xEA)
+ (pminub #x66 #x0F #xDA)
+
+ (pmovmskb #x66 #x0F #xD7)
+
+ (pmulhuw #x66 #x0F #xE4)
+ (pmulhw #x66 #x0F #xE5)
+ (pmullw #x66 #x0F #xD5)
+ (pmuludq #x66 #x0F #xF4)
+
+ (por #x66 #x0F #xEB)
+
+ (psadbw #x66 #x0F #xF6)
+ (pssld #x66 #x0F #xF2)
+ (psllq #x66 #x0F #xF3)
+ (psllw #x66 #x0F #xF1)
+ (psrad #x66 #x0F #xE2)
+ (psraw #x66 #x0F #xE2)
+ (psrld #x66 #x0F #xD2)
+ (psrlq #x66 #x0F #xD3)
+ (psrlw #x66 #x0F #xD1)
+
+ (psubb #x66 #x0F #xF8)
+ (psubd #x66 #x0F #xFA)
+ (psubq #x66 #x0F #xFB)
+ (psubsb #x66 #x0F #xE8)
+ (psubsw #x66 #x0F #xE9)
+ (psubusb #x66 #x0F #xD8)
+ (psubusw #x66 #x0F #xD9)
+ (psubw #x66 #x0F #xF9)
+
+ (punpckhbw #x66 #x0F #x68)
+ (punpckhdq #x66 #x0F #x6A)
+ (punpckhqdq #x66 #x0F #x6D)
+ (punpckhwd #x66 #x0F #x69)
+ (punpcklbw #x66 #x0F #x60)
+ (punpckldq #x66 #x0F #x62)
+ (punpcklqdq #x66 #x0F #x6C)
+ (punpcklwd #x66 #x0F #x61)
+
+ (pxor #x66 #x0F #xEF)
+
)
do
(format stream "~S~%~%"
Index: sb-simd/.cvsignore
diff -u sb-simd/.cvsignore:1.1 sb-simd/.cvsignore:1.2
--- sb-simd/.cvsignore:1.1 Mon Aug 8 11:57:48 2005
+++ sb-simd/.cvsignore Mon Aug 8 12:35:37 2005
@@ -1 +1,3 @@
.emacs.desktop
+*.fasl
+sse-insts.lisp
More information about the Sb-simd-cvs
mailing list