aboutsummaryrefslogtreecommitdiff
path: root/tinycc/tests/asmtest.S
diff options
context:
space:
mode:
authorUneven Prankster <unevenprankster@protonmail.com>2023-07-17 01:34:34 -0300
committerUneven Prankster <unevenprankster@protonmail.com>2023-07-17 01:34:34 -0300
commit88d82c6eaee88398af1de57cddca692a1f74b087 (patch)
treedf492c2002a1820959703f4f481172cceafeb0a1 /tinycc/tests/asmtest.S
parent111c133b939c15c57c90cd474d55e84928c6307a (diff)
Cleanup feels good! Big work coming up this week.
Diffstat (limited to 'tinycc/tests/asmtest.S')
-rw-r--r--tinycc/tests/asmtest.S1025
1 files changed, 0 insertions, 1025 deletions
diff --git a/tinycc/tests/asmtest.S b/tinycc/tests/asmtest.S
deleted file mode 100644
index 7f31ce5..0000000
--- a/tinycc/tests/asmtest.S
+++ /dev/null
@@ -1,1025 +0,0 @@
-# gas comment with ``gnu'' style quotes
-
-/* some directive tests */
-
- .byte 0xff
- .byte 1, 2, 3
- .short 1, 2, 3
- .word 1, 2, 3
- .long 1, 2, 3
- .int 1, 2, 3
- .align 8
- .byte 1
-/* .align 16, 0x90 gas is too clever for us with 0x90 fill */
- .balign 4, 0x92
- .align 16, 0x91 /* 0x91 tests the non-clever behaviour */
- .skip 3
- .skip 15, 0x90
- .string "hello\0world"
-/* Macro expansion should work like with C, the #n shouldn't be parsed
- as asm line comment */
-#define __stringify(n) #n
-#define stringify(n) __stringify(n)
- .skip 8,0x90
- .asciz stringify(BLA)
- .skip 8,0x90
-
-# 28 "asmtest.S" # a line directive (and a line comment)
- movl %eax, %ebx # some more asm comment
-/* some label tests */
-L1:
- movl %eax, %ebx
- mov 0x10000, %eax
-L2:
- movl $L2 - L1, %ecx
-var1:
- nop ; nop ; nop ; nop
-
- mov var1, %eax
-
-/* instruction tests */
-movl %eax, %ebx
-mov 0x10000, %eax
-mov 0x10000, %ax
-mov 0x10000, %al
-mov %al, 0x10000
-
-mov $1, %edx
-mov $1, %dx
-mov $1, %cl
-movb $2, 0x100(%ebx,%edx,2)
-movw $2, 0x100(%ebx,%edx,2)
-movl $2, 0x100(%ebx,%edx,2)
-movl %eax, 0x100(%ebx,%edx,2)
-movl 0x100(%ebx,%edx,2), %edx
-movw %ax, 0x100(%ebx,%edx,2)
-
-movw $0x1122,%si
-movl $0x112233,%edx
-movl $0x80000000, %esi
-movl $-0x7fffffff, %edi
-#ifdef __x86_64__
-mov $0x11223344,%rbx
-movq $0x11223344,%rbx
-mov $0x1122334455,%rbx
-movq $0x1122334455,%rbx
-movl $0x11334455,(%rbx)
-#endif
-
-mov %eax, 0x12(,%edx,2)
-
-#ifdef __i386__
-mov %cr3, %edx
-mov %ecx, %cr3
-movl %cr3, %eax
-movl %tr3, %eax
-movl %db3, %ebx
-movl %dr6, %eax
-#else
-mov %cr3, %rdx
-mov %rcx, %cr3
-movq %cr3, %rax
-movq %db3, %rbx
-movq %dr6, %rax
-mov %cr8, %rsi
-mov %rdi, %cr8
-#endif
-movl %fs, %ecx
-movl %ebx, %fs
-
-#ifdef __x86_64__
-movq %r8, %r9
-movq %r10, %r11
-movq %r12, %r13
-movq %r14, %r15
-movq %rax, %r9
-movq %r15, %rsi
-inc %r9b
-dec %r10w
-not %r11d
-negq %r12
-decb %r13b
-incw %r14w
-notl %r15d
-#endif
-
- movsbl 0x1000, %eax
- movsbw 0x1000, %ax
- movswl 0x1000, %eax
-
- movzbl 0x1000, %eax
- movzbw 0x1000, %ax
- movzwl 0x1000, %eax
-
- movzb 0x1000, %eax
- movzb 0x1000, %ax
-
- mov $0x12345678,%eax
-
-#ifdef __x86_64__
- movzb 0x1000, %rax
- movzbq 0x1000, %rbx
- movsbq 0x1000, %rdx
- movzwq 0x1000, %rdi
- movswq 0x1000, %rdx
- movslq %eax, %rcx
- mov $0x12345678,%rax
- mov $0x12345678,%rdx
- mov $0x12345678,%r10
- mov $0x123456789abcdef0,%rax
- mov $0x123456789abcdef0,%rcx
- mov $0x123456789abcdef0,%r11
-#endif
-
-#ifdef __i386__
- pushl %eax
- push %eax
- push %cs
-#else
- pushq %rax
- push %rax
-#endif
- pushw %ax
- push %gs
- push $1
- push $100
- push 0x42(%eax)
- pop 0x43(%esi)
-
-#ifdef __i386__
- popl %eax
- pop %eax
- pop %ds
-#else
- popq %rax
- pop %rax
-#endif
- popw %ax
- pop %fs
-
- xchg %eax, %ecx
- xchg %edx, %eax
- xchg %bx, 0x10000
- xchg 0x10000, %ebx
- xchg 0x10000, %dl
-
- in $100, %al
- in $100, %ax
- in $100, %eax
- in %dx, %al
- in %dx, %ax
- in %dx, %eax
- inb %dx
- inw %dx
- inl %dx
-
- out %al, $100
- out %ax, $100
- out %eax, $100
-
- /* NOTE: gas is bugged here, so size must be added */
- outb %al, %dx
- outw %ax, %dx
- outl %eax, %dx
-
- leal 0x1000(%ebx), %ecx
- lea 0x1000(%ebx), %ecx
-
-#ifdef __i386__
- les 0x2000, %eax
- lds 0x2000, %ebx
- lss 0x2000, %edx
-#endif
- lfs 0x2000, %ecx
- lgs 0x2000, %edx
-
-addl $0x123, %eax
-add $0x123, %ebx
-add $-16, %ecx
-add $-0x123, %esi
-add $1, %bx
-add $1, %ebx
-add $-1, %bx
-add $-1, %ebx
-add $127, %bx
-addl $127, %ebx
-addl $-128, %ebx
-addl $-128, %ebx
-addl $-129, %ebx
-addl $128, %ebx
-addl $255, %ebx
-addl $256, %ebx
-andb $0xf, %ah
-andb $-15, %cl
-xorb $127, %dh
-cmpb $42, (%eax)
-addl $0x123, 0x100
-addl $0x123, 0x100(%ebx)
-addl $0x123, 0x100(%ebx,%edx,2)
-addl $0x123, 0x100(%esp)
-addl $0x123, (3*8)(%esp)
-addl $0x123, (%ebp)
-addl $0x123, (%esp)
-cmpl $0x123, (%esp)
-
-#ifdef __x86_64__
-xor %bl,%ah
-xor %bl,%r8b
-xor %r9b,%bl
-xor %sil,%cl
-add %eax,(%r8d)
-add %ebx,(%r9)
-add %edx,(%r10d,%r11d)
-add %ecx,(%r12,%r13)
-add %esi,(%r14,%r15,4)
-add %edi,0x1000(%rbx,%r12,8)
-add %r11,0x1000(%ebp,%r9d,8)
-movb $12, %ah
-movb $13, %bpl
-movb $14, %dil
-movb $15, %r12b
-#endif
-
-add %eax, (%ebx)
-add (%ebx), %eax
-
-or %dx, (%ebx)
-or (%ebx), %si
-
-add %cl, (%ebx)
-add (%ebx), %dl
-
- inc %edx
- incl 0x10000
- incb 0x10000
- dec %dx
-
- test $1, %al
- test $1, %cl
-
- testl $1, 0x1000
- testb $1, 0x1000
- testw $1, 0x1000
- test %eax, %ebx
- test %eax, 0x1000
- test 0x1000, %edx
-
- not %edx
- notw 0x10000
- notl 0x10000
- notb 0x10000
-
- neg %edx
- negw 0x10000
- negl 0x10000
- negb 0x10000
-
- imul %ecx
- mul %edx
- mulb %cl
-
- imul %eax, %ecx
- imul 0x1000, %cx
- imul $10, %eax, %ecx
- imul $10, %ax, %cx
- imul $10, %eax
- imul $0x1100000, %eax
- imul $1, %eax
-
- idivw 0x1000
- div %ecx
- div %bl
- div %ecx, %eax
-
-and $15,%bx
-and $-20,%edx
-
-shl %edx
-shl $10, %edx
-shl %cl, %edx
-
-shld $1, %eax, %edx
-shld %cl, %eax, %edx
-shld %eax, %edx
-
-shrd $1, %eax, %edx
-shrd %cl, %eax, %edx
-shrd %eax, %edx
-
-L4:
-call 0x1000
-call L4
-#ifdef __i386__
-call *%eax
-#else
-call *%rax
-#endif
-call *0x1000
-call func1
-
-.global L5,L6
-
-L5:
-L6:
-
-#ifdef __i386__
-lcall $0x100, $0x1000
-#else
-lcall *0x100
-lcall *(%rax)
-#endif
-
-jmp 0x1000
-jmp *(%edi)
-#ifdef __i386__
-jmp *%eax
-#else
-jmp *%rax
-#endif
-jmp *0x1000
-
-#ifdef __i386__
-ljmp $0x100, $0x1000
-#else
-ljmp *0x100
-ljmp *(%rdi)
-ljmpl *(%esi)
-ljmpw *(%esi)
-#endif
-
-ret
-ret $10
-#ifdef __i386__
-retl
-retl $10
-#else
-retq
-retq $10
-#endif
-
-lret
-
-lret $10
-
-enter $1234, $10
-
-L3:
- jo 0x1000
- jnp 0x1001
- jne 0x1002
- jg 0x1003
-
- jo L3
- jnp L3
- jne L3
- jg L3
-
- loopne L3
- loopnz L3
- loope L3
- loopz L3
- loop L3
- jecxz L3
-
-
- seto %al
- setc %al
- setcb %al
- setnp 0x1000
- setl 0xaaaa
- setg %dl
-
- fadd
- fadd %st(1), %st
- fadd %st(0), %st(1)
- fadd %st(3)
-
- fmul %st(0),%st(0)
- fmul %st(0),%st(1)
-
- faddp %st(5)
- faddp
- faddp %st(1), %st
-
- fadds 0x1000
- fiadds 0x1002
- faddl 0x1004
- fiaddl 0x1006
-
- fmul
- fmul %st(1), %st
- fmul %st(3)
-
- fmulp %st(5)
- fmulp
- fmulp %st(1), %st
-
- fmuls 0x1000
- fimuls 0x1002
- fmull 0x1004
- fimull 0x1006
-
- fsub
- fsub %st(1), %st
- fsub %st(3)
-
- fsubp %st(5)
- fsubp
- //fsubp %st(1), %st # not accepted by new GAS anymore
-
- fsubs 0x1000
- fisubs 0x1002
- fsubl 0x1004
- fisubl 0x1006
-
- fsubr
- fsubr %st(1), %st
- fsubr %st(3)
-
- fsubrp %st(5)
- fsubrp
- //fsubrp %st(1), %st # not accepted by new GAS anymore
-
- fsubrs 0x1000
- fisubrs 0x1002
- fsubrl 0x1004
- fisubrl 0x1006
-
- fdiv
- fdiv %st(1), %st
- fdiv %st(3)
-
- fdivp %st(5)
- fdivp
- //fdivp %st(1), %st # not accepted by new GAS anymore
-
- fdivs 0x1000
- fidivs 0x1002
- fdivl 0x1004
- fidivl 0x1006
-
- fcom %st(3)
-
- fcoms 0x1000
- ficoms 0x1002
- fcoml 0x1004
- ficoml 0x1006
-
- fcomp %st(5)
- fcomp
- fcompp
-
- fcomps 0x1000
- ficomps 0x1002
- fcompl 0x1004
- ficompl 0x1006
-
- fld %st(5)
- fldl 0x1000
- flds 0x1002
- fildl 0x1004
- fst %st(4)
- fstp %st(6)
- fstpt 0x1006
- fbstp 0x1008
-
- fxch
- fxch %st(4)
-
- fucom %st(6)
- fucomp %st(3)
- fucompp
-
- finit
- fninit
- fldcw 0x1000
- fnstcw 0x1002
- fstcw 0x1002
- fnstsw 0x1004
- fnstsw (%eax)
- fstsw 0x1004
- fstsw (%eax)
- fnclex
- fclex
- fnstenv 0x1000
- fstenv 0x1000
- fldenv 0x1000
- fnsave 0x1002
- fsave 0x1000
- frstor 0x1000
- ffree %st(7)
- ffreep %st(6)
-
- ftst
- fxam
- fld1
- fldl2t
- fldl2e
- fldpi
- fldlg2
- fldln2
- fldz
-
- f2xm1
- fyl2x
- fptan
- fpatan
- fxtract
- fprem1
- fdecstp
- fincstp
- fprem
- fyl2xp1
- fsqrt
- fsincos
- frndint
- fscale
- fsin
- fcos
- fchs
- fabs
- fnop
- fwait
-
-bswap %edx
-bswapl %ecx
-xadd %ecx, %edx
-xaddb %dl, 0x1000
-xaddw %ax, 0x1000
-xaddl %eax, 0x1000
-cmpxchg %ecx, %edx
-cmpxchgb %dl, 0x1000
-cmpxchgw %ax, 0x1000
-cmpxchgl %eax, 0x1000
-invlpg 0x1000
-cmpxchg8b 0x1002
-#ifdef __x86_64__
-cmpxchg16b (%rax)
-cmpxchg16b (%r10,%r11)
-#endif
-
-fcmovb %st(5), %st
-fcmove %st(5), %st
-fcmovbe %st(5), %st
-fcmovu %st(5), %st
-fcmovnb %st(5), %st
-fcmovne %st(5), %st
-fcmovnbe %st(5), %st
-fcmovnu %st(5), %st
-fcomi %st(5), %st
-fucomi %st(5), %st
-fcomip %st(5), %st
-fucomip %st(5), %st
-
-
-
- cmovo 0x1000, %eax
- cmovs 0x1000, %eax
- cmovns %edx, %edi
- cmovne %ax, %si
- cmovbw %ax, %di
- cmovnbel %edx, %ecx
-#ifdef __x86_64__
- bswapq %rsi
- bswapq %r10
- cmovz %rdi,%rbx
- cmovpeq %rsi, %rdx
-#endif
-
-int $3
-int $0x10
-
-#ifdef __i386__
- pusha
- popa
-#endif
- clc # another comment
- cld # a comment with embedded ' tick
- cli
- clts
- cmc
- lahf
- sahf
-#ifdef __i386__
- pushfl
- popfl
-#else
- pushfq
- popfq
-#endif
- pushf
- popf
- stc
- std
- sti
-#ifdef __i386__
- aaa
- aas
- daa
- das
- aad
- aam
- into
-#endif
- cbw
- cwd
- cwde
- cdq
- cbtw
- cwtd
- cwtl
- cltd
- leave
- int3
- iret
- iretw
- iretl
-#ifdef __x86_64__
- iretq
-#endif
- rsm
- hlt
- wait
- nop
- vmcall
- vmlaunch
- vmresume
- vmxoff
-
- /* XXX: handle prefixes */
-#if 0
- aword
- addr16
-#endif
- lock
- rep
- repe
- repz
- repne
- repnz
- nop
-
- lock ;negl (%eax)
- wait ;pushf
- rep ;stosb
- repe ;lodsb
- repz ;cmpsb
- repne;movsb
- repnz;outsb
-
- /* handle one-line prefix + ops */
- lock negl (%eax)
- wait pushf
- rep stosb
- repe lodsb
- repz cmpsb
- repne movsb
- repnz outsb
-
- invd
- wbinvd
- cpuid
- wrmsr
- rdtsc
- rdmsr
- rdpmc
- ud2
-#ifdef __x86_64__
- syscall
- sysret
- sysretq
- lfence
- mfence
- sfence
- prefetchnta 0x18(%rdx)
- prefetcht0 (%rcx)
- prefetcht1 (%rsi)
- prefetcht2 (%rdi)
- prefetchw (%rdi)
- clflush 0x1000(%rax,%rcx)
- fxsaveq (%rdx)
- fxsaveq (%r11)
- fxrstorq (%rcx)
- fxrstorq (%r10)
- movnti %ebx, (%rdi)
- movntil %ecx, (%rdi)
- movnti %rax, (%rdi)
- movntiq %r8, (%rdi)
-
-#endif
-
- lar %ax,%dx
- lar %eax,%dx
- lar %ax,%edx
- lar %eax,%edx
-#ifdef __x86_64__
- lar %ax,%rdx
- lar %eax,%rdx
-#endif
- emms
- movd %edx, %mm3
- movd 0x1000, %mm2
- movd %mm4, %ecx
- movd %mm5, 0x1000
-
- movq 0x1000, %mm2
- movq %mm4, 0x1000
-
- pand 0x1000, %mm3
- pand %mm4, %mm5
-
- psllw $1, %mm6
- psllw 0x1000, %mm7
- psllw %mm2, %mm7
-
- xlat
- cmpsb
- scmpw
- insl
- outsw
- lodsb
- slodl
- movsb
- movsl
- smovb
- scasb
- sscaw
- stosw
- sstol
-
- bsf 0x1000, %ebx
- bsr 0x1000, %ebx
- bt %edx, 0x1000
- btl $2, 0x1000
- btc %edx, 0x1000
- btcl $2, 0x1000
- btr %edx, 0x1000
- btrl $2, 0x1000
- bts %edx, 0x1000
- btsl $2, 0x1000
-
- popcnt %ax, %si
- popcntw %ax, %si
- popcnt 0x1000, %edx
- popcntl 0x1000, %edx
-#ifdef __x86_64__
- popcnt %rbx, %rdi
- popcntq %rcx, %r8
-#endif
-
- lzcnt %cx, %ax
- lzcntw %cx, %ax
- lzcnt %edx, %ebx
- lzcntl 8(%edi), %ecx
-#ifdef __x86_64__
- lzcnt %rdi, %rdx
- lzcntq %r12, %r15
- lzcnt 0x40(%rcx), %r11
- lzcntq (%r8), %rsi
-#endif
-
- tzcnt %cx, %ax
- tzcntw %cx, %ax
- tzcnt %edx, %ebx
- tzcntl -24(%edi), %ecx
-#ifdef __x86_64__
- tzcnt %rbp, %rdx
- tzcntq %rax, %r15
- tzcnt -8(%rbp), %rcx
- tzcntq (%r8), %r12
-#endif
-
-#ifdef __i386__
- boundl %edx, 0x10000
- boundw %bx, 0x1000
-
- arpl %bx, 0x1000
-#endif
- lar 0x1000, %eax
- lgdt 0x1000
- lidt 0x1000
- lldt 0x1000
- sgdt 0x1000
- sidt 0x1000
- sldt 0x1000
-#ifdef __x86_64__
- lgdtq 0x1000
- lidtq 0x1000
- sgdtq 0x1000
- sidtq 0x1000
-
- swapgs
-
- /* Newer gas assemble 'str %rdx' as 'str %edx', based on the observation
- that the 16bit value of the task register is zero-extended into the
- destination anyway, and hence storing into %edx is the same as storing
- into %rdx. TCC doesn't do that micro-optimization, hence just store
- into the 32bit reg as well. */
- str %edx
- str %r9d
-#endif
-
- lmsw 0x1000
- lsl 0x1000, %ecx
- ltr 0x1000
- ltr %si
- smsw 0x1000
- str 0x1000
- str %ecx
- str %dx
-
- verr 0x1000
- verw 0x1000
-
-#ifdef __i386__
- push %ds
- pushw %ds
- pushl %ds
- pop %ds
- popw %ds
- popl %ds
-#endif
- fxsave 1(%ebx)
- fxrstor 1(%ecx)
-#ifdef __i386__
- pushl $1
-#else
- pushq $1
-#endif
- pushw $1
- push $1
-
-#ifdef __ASSEMBLER__ // should be defined, for S files
- inc %eax
-#endif
-
-#ifndef _WIN32
-ft1: ft2: ft3: ft4: ft5: ft6: ft7: ft8: ft9:
- xor %eax, %eax
- ret
-
-.type ft1,STT_FUNC
-.type ft2,@STT_FUNC
-.type ft3,%STT_FUNC
-.type ft4,"STT_FUNC"
-.type ft5,function
-.type ft6,@function
-.type ft7,%function
-.type ft8,"function"
-#endif
-
- pause
-.rept 6
- nop
-.endr
-.fill 4,1,0x90
-
-.section .text.one,"ax"
-nop
-.previous
-.pushsection .text.one,"ax"
-nop
-.pushsection .text.two,"ax"
-nop
-.popsection
-.popsection
-
-1: ud2
-.pushsection __bug_table,"a"
-.align 8
-2: .long 1b - 2b
- .long 0x600000 - 2b
- .long 1b + 42
- .long 43 + 1b
- .long 2b + 144
- .long 145 + 2b
- .word 164, 0
- .org 2b+32
-#ifdef __x86_64__
- .quad 1b
-#else
- .long 1b
-#endif
-.popsection
-3: mov %eax,%ecx
-4:
-.pushsection .text.three, "ax"
-nop
-.skip (-((4b-3b) > 0) * 2) , 0x90
-.popsection
-
-.globl overrideme
-.weak overrideme
- nop
-.globl notimplemented
-notimplemented:
- ret
-.set overrideme, notimplemented
-overrideme = notimplemented
-overrideme:
- ret
-
- movd %esi, %mm1
- movd %edi, %xmm2
- movd (%ebx), %mm3
- movd (%ebx), %xmm3
- movd %mm1, %esi
- movd %xmm2, %edi
- movd %mm3, (%edx)
- movd %xmm3, (%edx)
-#ifdef __x86_64__
- movd %rsi, %mm1
- movd %rdi, %xmm2
- movd (%rbx), %mm3
- movd (%rbx), %xmm3
- movd %mm1, %r12
- movd %xmm2, %rdi
- movd %mm3, (%r8)
- movd %xmm3, (%r13)
-#endif
-
- movq (%ebp), %mm1
- movq %mm2, (%edi)
- movq (%edi), %xmm3
- movq %mm4, %mm5
-#ifdef __x86_64__
- movq %rcx, %mm1
- movq %rdx, %xmm2
- movq %r13, %xmm3
- /* movq mem64->xmm is encoded as f30f7e by GAS, but as
- 660f6e by tcc (which really is a movd and would need
- a REX.W prefix to be movq). */
- movq (%rsi), %xmm3
- movq %mm1, %rdx
- movq %xmm3, %rcx
- movq %xmm4, (%rsi)
-#endif
-
-#define TEST_MMX_SSE(insn) \
- insn %mm1, %mm2; \
- insn %xmm2, %xmm3; \
- insn (%ebx), %xmm3;
-#define TEST_MMX_SSE_I8(insn) \
- TEST_MMX_SSE(insn) \
- insn $0x42, %mm4; \
- insn $0x42, %xmm4;
-
- TEST_MMX_SSE(packssdw)
- TEST_MMX_SSE(packsswb)
- TEST_MMX_SSE(packuswb)
- TEST_MMX_SSE(paddb)
- TEST_MMX_SSE(paddw)
- TEST_MMX_SSE(paddd)
- TEST_MMX_SSE(paddsb)
- TEST_MMX_SSE(paddsw)
- TEST_MMX_SSE(paddusb)
- TEST_MMX_SSE(paddusw)
- TEST_MMX_SSE(pand)
- TEST_MMX_SSE(pandn)
- TEST_MMX_SSE(pcmpeqb)
- TEST_MMX_SSE(pcmpeqw)
- TEST_MMX_SSE(pcmpeqd)
- TEST_MMX_SSE(pcmpgtb)
- TEST_MMX_SSE(pcmpgtw)
- TEST_MMX_SSE(pcmpgtd)
- TEST_MMX_SSE(pmaddwd)
- TEST_MMX_SSE(pmulhw)
- TEST_MMX_SSE(pmullw)
- TEST_MMX_SSE(por)
- TEST_MMX_SSE(psllw)
-TEST_MMX_SSE_I8(psllw)
- TEST_MMX_SSE(pslld)
-TEST_MMX_SSE_I8(pslld)
- TEST_MMX_SSE(psllq)
-TEST_MMX_SSE_I8(psllq)
- TEST_MMX_SSE(psraw)
-TEST_MMX_SSE_I8(psraw)
- TEST_MMX_SSE(psrad)
-TEST_MMX_SSE_I8(psrad)
- TEST_MMX_SSE(psrlw)
-TEST_MMX_SSE_I8(psrlw)
- TEST_MMX_SSE(psrld)
-TEST_MMX_SSE_I8(psrld)
- TEST_MMX_SSE(psrlq)
-TEST_MMX_SSE_I8(psrlq)
- TEST_MMX_SSE(psubb)
- TEST_MMX_SSE(psubw)
- TEST_MMX_SSE(psubd)
- TEST_MMX_SSE(psubsb)
- TEST_MMX_SSE(psubsw)
- TEST_MMX_SSE(psubusb)
- TEST_MMX_SSE(psubusw)
- TEST_MMX_SSE(punpckhbw)
- TEST_MMX_SSE(punpckhwd)
- TEST_MMX_SSE(punpckhdq)
- TEST_MMX_SSE(punpcklbw)
- TEST_MMX_SSE(punpcklwd)
- TEST_MMX_SSE(punpckldq)
- TEST_MMX_SSE(pxor)
-
- cvtpi2ps %mm1, %xmm2
- cvtpi2ps (%ebx), %xmm2
- TEST_MMX_SSE(pmaxsw)
- TEST_MMX_SSE(pmaxub)
- TEST_MMX_SSE(pminsw)
- TEST_MMX_SSE(pminub)