about summary refs log tree commit diff stats
path: root/test/arch/x86/unit/mn_pcmpeq.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/arch/x86/unit/mn_pcmpeq.py')
-rwxr-xr-xtest/arch/x86/unit/mn_pcmpeq.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/test/arch/x86/unit/mn_pcmpeq.py b/test/arch/x86/unit/mn_pcmpeq.py
index 22760db4..e934d6b5 100755
--- a/test/arch/x86/unit/mn_pcmpeq.py
+++ b/test/arch/x86/unit/mn_pcmpeq.py
@@ -4,6 +4,7 @@ import sys
 
 from asm_test import Asm_Test_32
 
+
 class Test_PCMPEQB(Asm_Test_32):
     TXT = '''
     main:
@@ -42,7 +43,6 @@ class Test_PCMPEQW(Asm_Test_32):
         assert self.myjit.cpu.MM1 == 0xFFFF0000FFFF0000
 
 
-
 class Test_PCMPEQD(Asm_Test_32):
     TXT = '''
     main:
@@ -62,5 +62,33 @@ class Test_PCMPEQD(Asm_Test_32):
         assert self.myjit.cpu.MM1 == 0x00000000FFFFFFFF
 
 
+class Test_PCMPEQQ(Asm_Test_32):
+    TXT = '''
+    main:
+       MOVD       XMM0, ESI
+       MOVD       XMM1, EDI
+       PCMPEQQ    XMM0, XMM1
+       JZ         ret
+       MOV        EAX, 1
+    ret:
+       RET
+    '''
+
+    def prepare(self):
+        val = 1
+        self.myjit.cpu.ESI = 0x11223344
+        self.myjit.cpu.EDI = 0x11223345
+        self.myjit.cpu.XMM0 = val
+
+    def check(self):
+        assert self.myjit.cpu.XMM0 == 0xffffffffffffffff0000000000000000L
+        assert self.myjit.cpu.XMM1 == 0x11223345
+
+
 if __name__ == "__main__":
-    [test(*sys.argv[1:])() for test in [Test_PCMPEQB, Test_PCMPEQW, Test_PCMPEQD]]
+    [test(*sys.argv[1:])() for test in [
+        Test_PCMPEQB,
+        Test_PCMPEQW,
+        Test_PCMPEQD,
+        Test_PCMPEQQ,
+    ]]