]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
vex x86->IR: unhandled instruction bytes: 66 0F 38 37 (PCMPGTQ)
authorMartin Cermak <mcermak@redhat.com>
Sun, 21 Jun 2026 09:59:58 +0000 (11:59 +0200)
committerMartin Cermak <mcermak@redhat.com>
Sun, 21 Jun 2026 09:59:58 +0000 (11:59 +0200)
VEX/priv/guest_x86_toIR.c:  Instruction decoder
VEX/priv/host_x86_isel.c:  Handle Iop_CmpGT64Sx2
none/tests/x86/sse4-x86.c:  Add testcase
none/tests/x86/sse4-x86.stdout.exp:  Ditto
none/tests/amd64/sse4-64.c  Share test_PCMPGTQ()
   between x86 and amd64 testcases.
none/tests/sse4-common.h:  Ditto

https://bugs.kde.org/show_bug.cgi?id=521332

NEWS
VEX/priv/guest_x86_toIR.c
VEX/priv/host_x86_isel.c
none/tests/amd64/sse4-64.c
none/tests/sse4-common.h
none/tests/x86/sse4-x86.c
none/tests/x86/sse4-x86.stdout.exp

diff --git a/NEWS b/NEWS
index 090a50529fc73a8901c222f4b35adb4bc61de5c9..49bdec1dd2f470ea6bc9d19977b58bd70a1dc423 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -48,6 +48,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 520861  Update FAQ for C++ standard library
 521027  Advertise LZCNT on amd64 via CPUID
 521259  Improve check_makefile_consistency
+521332  vex x86->IR: unhandled instruction bytes: 66 0F 38 37 (PCMPGTQ)
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index 1a64b5b176d5e37cab19ac7d0a6d0e2cc045d78a..28637d4bc3c349754646771487efd914eebfeafc 100644 (file)
@@ -13468,6 +13468,17 @@ DisResult disInstr_X86_WRK (
       goto decode_success;
    }
 
+   /* 66 0F 38 37 PCMPGTQ 64x2 signed comparison */
+   if (sz == 2 && insn[0] == 0x0F
+       && insn[1] == 0x38 && insn[2] == 0x37) {
+     delta = dis_SSEint_E_to_G(
+         sorb, delta+3, "pcmpgtq",
+         Iop_CmpGT64Sx2, False
+         );
+     goto decode_success;
+   }
+
+
    /* 66 0F 38 38 /r  - PMINSB xmm1, xmm2/m128
       66 0F 38 3C /r  - PMAXSB xmm1, xmm2/m128
       Minimum/Maximum of Packed Signed Byte Integers (XMM)
index b044152b1e0aa9ae64bd3898faa0272a91bc21d2..4de6de3bad3e1712ac1c0920811a399a370e5f71 100644 (file)
@@ -3864,6 +3864,9 @@ static HReg iselVecExpr_wrk ( ISelEnv* env, const IRExpr* e )
       case Iop_CmpEQ64x2:
          fn = (HWord)h_generic_calc_CmpEQ64x2;
          goto do_SseAssistedBinary;
+      case Iop_CmpGT64Sx2:
+         fn = (HWord)h_generic_calc_CmpGT64Sx2;
+         goto do_SseAssistedBinary;
       case Iop_NarrowBin32to16x8:
          fn = (HWord)h_generic_calc_NarrowBin32to16x8;
          goto do_SseAssistedBinary;
index ababcd2906877e0f9b3874ac413c6e9bb6081ec2..c74b6754993a8ddd472d259d407f10876ad5b0e6 100644 (file)
@@ -1432,34 +1432,6 @@ void test_POPCNTW ( void )
    }
 }
 
-
-void test_PCMPGTQ ( void )
-{
-   V128 spec[7];
-   do64HLtoV128( &spec[0], 0x0000000000000000ULL, 0xffffffffffffffffULL );
-   do64HLtoV128( &spec[1], 0x0000000000000001ULL, 0xfffffffffffffffeULL );
-   do64HLtoV128( &spec[2], 0x7fffffffffffffffULL, 0x8000000000000001ULL );
-   do64HLtoV128( &spec[3], 0x8000000000000000ULL, 0x8000000000000000ULL );
-   do64HLtoV128( &spec[4], 0x8000000000000001ULL, 0x7fffffffffffffffULL );
-   do64HLtoV128( &spec[5], 0xfffffffffffffffeULL, 0x0000000000000001ULL );
-   do64HLtoV128( &spec[6], 0xffffffffffffffffULL, 0x0000000000000000ULL );
-
-   V128 src, dst;
-   Int i, j;
-   for (i = 0; i < 10; i++) {
-      randV128(&src);
-      randV128(&dst);
-      DO_mandr_r("pcmpgtq", src, dst);
-   }
-   for (i = 0; i < 7; i++) {
-      for (j = 0; j < 7; j++) {
-         memcpy(&src, &spec[i], 16);
-         memcpy(&dst, &spec[j], 16);
-         DO_mandr_r("pcmpgtq", src, dst);
-      }
-   }
-}
-
 /* ------------ PTEST ------------ */
 
 void test_PTEST ( void )
index 5d0e857e2f779805b837655113900035175a1025..159f816c72090fc22d856fe14495bc2da7a676f1 100644 (file)
@@ -2477,4 +2477,31 @@ static inline void test_ROUNDPS_w_mxcsr_rounding ( void )
    assert(rm == 0); // 0 == RN == default
 }
 
+static inline void test_PCMPGTQ ( void )
+{
+   V128 spec[7];
+   do64HLtoV128( &spec[0], 0x0000000000000000ULL, 0xffffffffffffffffULL );
+   do64HLtoV128( &spec[1], 0x0000000000000001ULL, 0xfffffffffffffffeULL );
+   do64HLtoV128( &spec[2], 0x7fffffffffffffffULL, 0x8000000000000001ULL );
+   do64HLtoV128( &spec[3], 0x8000000000000000ULL, 0x8000000000000000ULL );
+   do64HLtoV128( &spec[4], 0x8000000000000001ULL, 0x7fffffffffffffffULL );
+   do64HLtoV128( &spec[5], 0xfffffffffffffffeULL, 0x0000000000000001ULL );
+   do64HLtoV128( &spec[6], 0xffffffffffffffffULL, 0x0000000000000000ULL );
+
+   V128 src, dst;
+   Int i, j;
+   for (i = 0; i < 10; i++) {
+      randV128(&src);
+      randV128(&dst);
+      DO_mandr_r("pcmpgtq", src, dst);
+   }
+   for (i = 0; i < 7; i++) {
+      for (j = 0; j < 7; j++) {
+         memcpy(&src, &spec[i], 16);
+         memcpy(&dst, &spec[j], 16);
+         DO_mandr_r("pcmpgtq", src, dst);
+      }
+   }
+}
+
 #endif /* __SSE4_COMMON_H */
index 898290fa5681554642da38266b48f855a2626a4c..e2a6b29d77c71fbdfab80782ce0bba88f55a4a78 100644 (file)
@@ -270,6 +270,7 @@ int main(void)
    test_ROUNDPD_w_mxcsr_rounding();
    test_ROUNDPS_w_mxcsr_rounding();
    test_PMULDQ();
+   test_PCMPGTQ();
 
    return 0;
 }
index bcd0df011af28537c409a6426d87bfe0849d77bf..cdb2fdd6b2453d90ed9ccb67ebdf33a0cd6a8556 100644 (file)
@@ -3590,3 +3590,121 @@ r     pmuldq f4fa26cbf14c53829fb72cd7749000f6 3cfa986a54ca6f13eaaea7519f08c41a f
 m     pmuldq f4fa26cbf14c53829fb72cd7749000f6 3cfa986a54ca6f13eaaea7519f08c41a fb216b3f8d7390a6d3d96d6ce90c70fc
 r     pmuldq 3fe961151e816a60c5dc547c230dffca b843f1495252bb0efe0c35a614cfb77d 09cf4fd10687f14002d9896dbc054ba2
 m     pmuldq 3fe961151e816a60c5dc547c230dffca b843f1495252bb0efe0c35a614cfb77d 09cf4fd10687f14002d9896dbc054ba2
+r    pcmpgtq 43e098e4d580b9223f65287c65e0d607 5cf984236aaa9c021373ed0bea31219f ffffffffffffffff0000000000000000
+m    pcmpgtq 43e098e4d580b9223f65287c65e0d607 5cf984236aaa9c021373ed0bea31219f ffffffffffffffff0000000000000000
+r    pcmpgtq 5d29c5a4b3d47b74e71f24c2571542d9 83684b64355d4e9c05b14c6d3e3dbeab 0000000000000000ffffffffffffffff
+m    pcmpgtq 5d29c5a4b3d47b74e71f24c2571542d9 83684b64355d4e9c05b14c6d3e3dbeab 0000000000000000ffffffffffffffff
+r    pcmpgtq e910e6c15409ed019ad4c43a14b9fe6b 8bdc447951f80f88b090cdb62cfc49ce 0000000000000000ffffffffffffffff
+m    pcmpgtq e910e6c15409ed019ad4c43a14b9fe6b 8bdc447951f80f88b090cdb62cfc49ce 0000000000000000ffffffffffffffff
+r    pcmpgtq 44e3f6a852ac4b76345185d0b9d7c7ea cfa06acc5a061971f0deecd4ce7c7f34 00000000000000000000000000000000
+m    pcmpgtq 44e3f6a852ac4b76345185d0b9d7c7ea cfa06acc5a061971f0deecd4ce7c7f34 00000000000000000000000000000000
+r    pcmpgtq c8edf1c34c48d07e9161e270617c5981 aa02bacaeb13a904a16525b143c81c08 0000000000000000ffffffffffffffff
+m    pcmpgtq c8edf1c34c48d07e9161e270617c5981 aa02bacaeb13a904a16525b143c81c08 0000000000000000ffffffffffffffff
+r    pcmpgtq d279d380dc69b9c68dd2570628b3705d 7a4c2ee0a1acfaec9ff2f53ba5eddc77 ffffffffffffffffffffffffffffffff
+m    pcmpgtq d279d380dc69b9c68dd2570628b3705d 7a4c2ee0a1acfaec9ff2f53ba5eddc77 ffffffffffffffffffffffffffffffff
+r    pcmpgtq bed499499e9c42fa046e607e2b88c7aa 9acbc479175c4ad6c651d75d10f67aac 00000000000000000000000000000000
+m    pcmpgtq bed499499e9c42fa046e607e2b88c7aa 9acbc479175c4ad6c651d75d10f67aac 00000000000000000000000000000000
+r    pcmpgtq e84a3e8c2f6ca7c5d20279c486081b93 65cb7701e9afd36df24d4703a1efb3d4 ffffffffffffffffffffffffffffffff
+m    pcmpgtq e84a3e8c2f6ca7c5d20279c486081b93 65cb7701e9afd36df24d4703a1efb3d4 ffffffffffffffffffffffffffffffff
+r    pcmpgtq ac27beb42a6523d4d35b1fc5543e2845 399843e3b431d15effb4c11973e5421b ffffffffffffffffffffffffffffffff
+m    pcmpgtq ac27beb42a6523d4d35b1fc5543e2845 399843e3b431d15effb4c11973e5421b ffffffffffffffffffffffffffffffff
+r    pcmpgtq 66b7152d2c14f3d2e342cd6bb236aaeb 707e248d146f8255c950c18ba3e3e5ac ffffffffffffffff0000000000000000
+m    pcmpgtq 66b7152d2c14f3d2e342cd6bb236aaeb 707e248d146f8255c950c18ba3e3e5ac ffffffffffffffff0000000000000000
+r    pcmpgtq 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff 00000000000000000000000000000000
+m    pcmpgtq 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff 00000000000000000000000000000000
+r    pcmpgtq 0000000000000000ffffffffffffffff 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+m    pcmpgtq 0000000000000000ffffffffffffffff 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+r    pcmpgtq 0000000000000000ffffffffffffffff 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq 0000000000000000ffffffffffffffff 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq 0000000000000000ffffffffffffffff 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq 0000000000000000ffffffffffffffff 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq 0000000000000000ffffffffffffffff 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000000ffffffffffffffff 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000000ffffffffffffffff fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000000ffffffffffffffff fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000001fffffffffffffffe 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000001fffffffffffffffe 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000001fffffffffffffffe 0000000000000001fffffffffffffffe 00000000000000000000000000000000
+m    pcmpgtq 0000000000000001fffffffffffffffe 0000000000000001fffffffffffffffe 00000000000000000000000000000000
+r    pcmpgtq 0000000000000001fffffffffffffffe 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq 0000000000000001fffffffffffffffe 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq 0000000000000001fffffffffffffffe 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq 0000000000000001fffffffffffffffe 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq 0000000000000001fffffffffffffffe 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000001fffffffffffffffe 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000001fffffffffffffffe fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000001fffffffffffffffe fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+r    pcmpgtq 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+m    pcmpgtq 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+r    pcmpgtq 7fffffffffffffff8000000000000001 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq 7fffffffffffffff8000000000000001 0000000000000000ffffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq 7fffffffffffffff8000000000000001 0000000000000001fffffffffffffffe 0000000000000000ffffffffffffffff
+m    pcmpgtq 7fffffffffffffff8000000000000001 0000000000000001fffffffffffffffe 0000000000000000ffffffffffffffff
+r    pcmpgtq 7fffffffffffffff8000000000000001 7fffffffffffffff8000000000000001 00000000000000000000000000000000
+m    pcmpgtq 7fffffffffffffff8000000000000001 7fffffffffffffff8000000000000001 00000000000000000000000000000000
+r    pcmpgtq 7fffffffffffffff8000000000000001 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq 7fffffffffffffff8000000000000001 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq 7fffffffffffffff8000000000000001 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq 7fffffffffffffff8000000000000001 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq 7fffffffffffffff8000000000000001 fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+m    pcmpgtq 7fffffffffffffff8000000000000001 fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+r    pcmpgtq 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+m    pcmpgtq 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 0000000000000000ffffffffffffffff ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 0000000000000000ffffffffffffffff ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 0000000000000001fffffffffffffffe ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 0000000000000001fffffffffffffffe ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 7fffffffffffffff8000000000000001 ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 7fffffffffffffff8000000000000001 ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq 80000000000000008000000000000000 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq 80000000000000008000000000000000 80000000000000017fffffffffffffff ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 80000000000000017fffffffffffffff ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 fffffffffffffffe0000000000000001 ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 fffffffffffffffe0000000000000001 ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000008000000000000000 ffffffffffffffff0000000000000000 ffffffffffffffffffffffffffffffff
+m    pcmpgtq 80000000000000008000000000000000 ffffffffffffffff0000000000000000 ffffffffffffffffffffffffffffffff
+r    pcmpgtq 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff 80000000000000017fffffffffffffff 00000000000000000000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff 80000000000000017fffffffffffffff 00000000000000000000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff fffffffffffffffe0000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff fffffffffffffffe0000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq 80000000000000017fffffffffffffff ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000
+m    pcmpgtq 80000000000000017fffffffffffffff ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq fffffffffffffffe0000000000000001 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq fffffffffffffffe0000000000000001 fffffffffffffffe0000000000000001 00000000000000000000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 fffffffffffffffe0000000000000001 00000000000000000000000000000000
+r    pcmpgtq fffffffffffffffe0000000000000001 ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000
+m    pcmpgtq fffffffffffffffe0000000000000001 ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000
+r    pcmpgtq ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+m    pcmpgtq ffffffffffffffff0000000000000000 0000000000000000ffffffffffffffff ffffffffffffffff0000000000000000
+r    pcmpgtq ffffffffffffffff0000000000000000 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+m    pcmpgtq ffffffffffffffff0000000000000000 0000000000000001fffffffffffffffe ffffffffffffffff0000000000000000
+r    pcmpgtq ffffffffffffffff0000000000000000 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+m    pcmpgtq ffffffffffffffff0000000000000000 7fffffffffffffff8000000000000001 ffffffffffffffff0000000000000000
+r    pcmpgtq ffffffffffffffff0000000000000000 80000000000000008000000000000000 00000000000000000000000000000000
+m    pcmpgtq ffffffffffffffff0000000000000000 80000000000000008000000000000000 00000000000000000000000000000000
+r    pcmpgtq ffffffffffffffff0000000000000000 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+m    pcmpgtq ffffffffffffffff0000000000000000 80000000000000017fffffffffffffff 0000000000000000ffffffffffffffff
+r    pcmpgtq ffffffffffffffff0000000000000000 fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+m    pcmpgtq ffffffffffffffff0000000000000000 fffffffffffffffe0000000000000001 0000000000000000ffffffffffffffff
+r    pcmpgtq ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000 00000000000000000000000000000000
+m    pcmpgtq ffffffffffffffff0000000000000000 ffffffffffffffff0000000000000000 00000000000000000000000000000000