]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add test cases for AVX-1 conditional vector stores:
authorJulian Seward <jseward@acm.org>
Wed, 28 Jan 2015 11:49:46 +0000 (11:49 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 28 Jan 2015 11:49:46 +0000 (11:49 +0000)
VMASKMOVP{D,S} xmm/ymm to memory.  Pertains to #335785.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14894

none/tests/amd64/avx-1.c
none/tests/amd64/avx-1.stdout.exp

index fdf51db615cc436828b3b9a40c991376ac2c639b..d02f7e33255059bfd82a9374647c16ff96b6d2c7 100644 (file)
@@ -56,7 +56,8 @@ void randBlock ( Block* b )
    operands only %ymm6, %ymm7, %ymm8, %ymm9 and %r14.  The mem form of
    the insn may mention as operands only (%rax), %ymm7, %ymm8, %ymm9
    and %r14.  It's OK for the insn to clobber ymm0, as this is needed
-   for testing PCMPxSTRx. */
+   for testing PCMPxSTRx, and ymm6, as this is needed for testing
+   MOVMASK variants. */
 
 #define GEN_test_RandM(_name, _reg_form, _mem_form)   \
     \
@@ -99,7 +100,8 @@ void randBlock ( Block* b )
           "movq    %%r14, 128(%0)"  "\n\t" \
           : /*OUT*/  \
           : /*IN*/"r"(b) \
-          : /*TRASH*/"xmm0","xmm8","xmm7","xmm9","r14","rax","memory","cc" \
+          : /*TRASH*/"xmm6", \
+                     "xmm0","xmm8","xmm7","xmm9","r14","rax","memory","cc" \
        ); \
        showBlock("after", b); \
        printf("\n"); \
@@ -2155,11 +2157,33 @@ GEN_test_Monly(VMASKMOVPD_256_LoadForm,
                "vxorpd %%ymm6, %%ymm6, %%ymm6;"
                "vmaskmovpd (%%rax,%%rax,4), %%ymm6, %%ymm9")
 
+GEN_test_Monly(VMASKMOVPS_128_StoreForm,
+               "vmaskmovps %%xmm8, %%xmm7, (%%rax);"
+               "vxorps %%xmm6, %%xmm6, %%xmm6;"
+               "vmaskmovps %%xmm9, %%xmm6, (%%rax,%%rax,4)")
+
+GEN_test_Monly(VMASKMOVPS_256_StoreForm,
+               "vmaskmovps %%ymm8, %%ymm7, (%%rax);"
+               "vxorps %%ymm6, %%ymm6, %%ymm6;"
+               "vmaskmovps %%ymm9, %%ymm6, (%%rax,%%rax,4)")
+
+GEN_test_Monly(VMASKMOVPD_128_StoreForm,
+               "vmaskmovpd %%xmm8, %%xmm7, (%%rax);"
+               "vxorpd %%xmm6, %%xmm6, %%xmm6;"
+               "vmaskmovpd %%xmm9, %%xmm6, (%%rax,%%rax,4)")
+
+GEN_test_Monly(VMASKMOVPD_256_StoreForm,
+               "vmaskmovpd %%ymm8, %%ymm7, (%%rax);"
+               "vxorpd %%ymm6, %%ymm6, %%ymm6;"
+               "vmaskmovpd %%ymm9, %%ymm6, (%%rax,%%rax,4)")
+
 /* Comment duplicated above, for convenient reference:
    Allowed operands in test insns:
      Reg form:  %ymm6,  %ymm7, %ymm8, %ymm9 and %r14.
      Mem form:  (%rax), %ymm7, %ymm8, %ymm9 and %r14.
    Imm8 etc fields are also allowed, where they make sense.
+   Both forms may use ymm0 as scratch.  Mem form may also use
+   ymm6 as scratch.
 */
 
 #define N_DEFAULT_ITERS 3
@@ -2701,6 +2725,10 @@ int main ( void )
    DO_D( VMASKMOVPS_256_LoadForm );
    DO_D( VMASKMOVPD_128_LoadForm );
    DO_D( VMASKMOVPD_256_LoadForm );
+   DO_D( VMASKMOVPS_128_StoreForm );
+   DO_D( VMASKMOVPS_256_StoreForm );
+   DO_D( VMASKMOVPD_128_StoreForm );
+   DO_D( VMASKMOVPD_256_StoreForm );
    return 0;
 }
 
index 2d8e1145efe4a10431dea20b600bdd06d8158da4..e298cb69e35e3bd70e1bdb668fd931e81d2fa6fc 100644 (file)
@@ -43279,3 +43279,327 @@ VMASKMOVPD_256_LoadForm(mem)
     0000000000000000.0000000000000000.0000000000000000.0000000000000000
     868f640a975a0151
 
+VMASKMOVPS_128_StoreForm(reg)
+  before
+    5609688ba8e27bdc.0d862f7b2870d0cb.636029dd16c65549.878b756cca3a3cfd
+    4b25f4ceef10fac6.ccbf6610ff6b1442.dac251520f50aa6e.ab4aa038fdbb365b
+    c231023e086fb8bc.a744d0a6b1253948.e52d3ffecb846109.bc2f00d0bf34f274
+    18779147908bf26a.78e0eb2b5ba9fa0c.e0ecee4de9f1b6c5.9706132029b12e74
+    169b5514593ea486
+  after
+    5609688ba8e27bdc.0d862f7b2870d0cb.636029dd16c65549.878b756cca3a3cfd
+    4b25f4ceef10fac6.ccbf6610ff6b1442.dac251520f50aa6e.ab4aa038fdbb365b
+    c231023e086fb8bc.a744d0a6b1253948.e52d3ffecb846109.bc2f00d0bf34f274
+    18779147908bf26a.78e0eb2b5ba9fa0c.e0ecee4de9f1b6c5.9706132029b12e74
+    169b5514593ea486
+VMASKMOVPS_128_StoreForm(mem)
+  before
+    16ba40986be811d7.a7459a5523f1e47b.1c613189180314b8.264c5aab0320e44f
+    732f52997abb3192.cce51ad45c2cc99b.6f9121ae05404378.15997f84b59f2852
+    09c50601a2c1bfe4.e4a30e31d7c8de78.4d3d34853d6b427a.081f5a449cf9be7b
+    b449d8be000878f9.49cd71d631525fbb.9231e7fadd90cee8.5b2ae65753bbe176
+    69061f2a766fceee
+  after
+    16ba40986be811d7.a7459a5523f1e47b.1c613189180314b8.264c5aabb59f2852
+    732f52997abb3192.cce51ad45c2cc99b.6f9121ae05404378.15997f84b59f2852
+    09c50601a2c1bfe4.e4a30e31d7c8de78.4d3d34853d6b427a.081f5a449cf9be7b
+    b449d8be000878f9.49cd71d631525fbb.9231e7fadd90cee8.5b2ae65753bbe176
+    69061f2a766fceee
+
+VMASKMOVPS_128_StoreForm(reg)
+  before
+    90fe0127a2a4c190.508844baaf9b18fc.58ae3f3006558713.1a38b7f900bba3ee
+    2b6089bc73e3f607.b94cc7e3cc875a1a.6d9175acf05d932a.c1201f6ec2f97db9
+    9576b15484baa800.cb61dc2473d7fb7e.e4c30db58ef7bfac.63b39b4640561774
+    2c8d775a72b41426.6295ff69be97b755.199005b67aae4747.dcbfa86b96dc2e4d
+    080ec0cadf997e6d
+  after
+    90fe0127a2a4c190.508844baaf9b18fc.58ae3f3006558713.1a38b7f900bba3ee
+    2b6089bc73e3f607.b94cc7e3cc875a1a.6d9175acf05d932a.c1201f6ec2f97db9
+    9576b15484baa800.cb61dc2473d7fb7e.e4c30db58ef7bfac.63b39b4640561774
+    2c8d775a72b41426.6295ff69be97b755.199005b67aae4747.dcbfa86b96dc2e4d
+    080ec0cadf997e6d
+VMASKMOVPS_128_StoreForm(mem)
+  before
+    c36d61503898c303.4af1d63cd85e7626.5ab3ac9eccd44acb.6844581d500f66a4
+    e9a806e7bbe6b839.4dedcb65524309ac.8f865fafb6996f0b.2d2b0255ada45972
+    568a2b7d878e1a3b.8fcf50417def0a63.dddb95889bf2e442.c49100ca2cfb5c5b
+    e6e14dfdb69ca536.6ee1633cf4efb5f8.207ec91594ec629b.89c14ce869a0ab0b
+    d808e41b021e812f
+  after
+    c36d61503898c303.4af1d63cd85e7626.8f865fafb6996f0b.2d2b0255500f66a4
+    e9a806e7bbe6b839.4dedcb65524309ac.8f865fafb6996f0b.2d2b0255ada45972
+    568a2b7d878e1a3b.8fcf50417def0a63.dddb95889bf2e442.c49100ca2cfb5c5b
+    e6e14dfdb69ca536.6ee1633cf4efb5f8.207ec91594ec629b.89c14ce869a0ab0b
+    d808e41b021e812f
+
+VMASKMOVPS_128_StoreForm(reg)
+  before
+    0db3c3d090011b73.7477e653641d1456.4470ffc354ce4617.333b7742bf92a843
+    840ce671b1d5b483.de19746bae1c24c7.6ec920403918f86b.f4de1bfc38f07066
+    995f476c01278a0a.ff937331afa591b3.4935c3213e5a08a0.3e32322d1a13772f
+    a7fae42b1b82d7b4.b3b15d9184c51649.2f03e3d0ff1fb264.ed0536c3820679ca
+    dc21a5a98bd53165
+  after
+    0db3c3d090011b73.7477e653641d1456.4470ffc354ce4617.333b7742bf92a843
+    840ce671b1d5b483.de19746bae1c24c7.6ec920403918f86b.f4de1bfc38f07066
+    995f476c01278a0a.ff937331afa591b3.4935c3213e5a08a0.3e32322d1a13772f
+    a7fae42b1b82d7b4.b3b15d9184c51649.2f03e3d0ff1fb264.ed0536c3820679ca
+    dc21a5a98bd53165
+VMASKMOVPS_128_StoreForm(mem)
+  before
+    e953fbcb518d5c2a.0c28b81c9b73d82e.d53faf78488771b3.7d7e7cbb19f33160
+    ee67b215f139b645.2334bfaa1e85c824.4308e6d018f85c1e.90f18a4c2763c243
+    c929487386e5fbe3.486bf6414044e541.d7da7d860f2293b5.c2aa09f1c5faa1b7
+    556537d12d9ee630.d619574d9c3c6932.6f7ff0874a13d4a5.70f3f61591440a69
+    f6194b2424ce3804
+  after
+    e953fbcb518d5c2a.0c28b81c9b73d82e.4308e6d0488771b3.90f18a4c2763c243
+    ee67b215f139b645.2334bfaa1e85c824.4308e6d018f85c1e.90f18a4c2763c243
+    c929487386e5fbe3.486bf6414044e541.d7da7d860f2293b5.c2aa09f1c5faa1b7
+    556537d12d9ee630.d619574d9c3c6932.6f7ff0874a13d4a5.70f3f61591440a69
+    f6194b2424ce3804
+
+VMASKMOVPS_256_StoreForm(reg)
+  before
+    b067068a1c236835.6de6fd1b026f3457.2b8ae03acefa90a3.e5c4bcbee4d7d919
+    fa2b22b315cfd6a7.ef79163d1f65a185.a20a8c747309983f.17755c16fa795f3f
+    30b09c0caa5fbd07.b5ebfc24a38ae8e6.96e5586726f6bbb3.df5d4b7da7052140
+    ae416fff775e5b01.9c062dbaa7edc6a5.65663e7f844c36aa.1b4a08de0787dd4b
+    a5060c25370c4d89
+  after
+    b067068a1c236835.6de6fd1b026f3457.2b8ae03acefa90a3.e5c4bcbee4d7d919
+    fa2b22b315cfd6a7.ef79163d1f65a185.a20a8c747309983f.17755c16fa795f3f
+    30b09c0caa5fbd07.b5ebfc24a38ae8e6.96e5586726f6bbb3.df5d4b7da7052140
+    ae416fff775e5b01.9c062dbaa7edc6a5.65663e7f844c36aa.1b4a08de0787dd4b
+    a5060c25370c4d89
+VMASKMOVPS_256_StoreForm(mem)
+  before
+    5b5fd43e539f2d29.d02b96fa1959ea40.819624ed4a97f7ee.69da3c29289744d1
+    171fdd16764d3b55.f2ba0f672cdaa671.3e695da7a59637ef.008d4dcfaf6422d3
+    b613a297bc20313a.703ad6b44b6fcd3f.b04a54d6d7f541d1.84cb6ddfb43e0c5d
+    14079fae4227cc03.a6f7e54c12a49957.b4048665f9c1d2c3.52e099c4d4b13e1b
+    c718cbe9aa4af4b8
+  after
+    171fdd16764d3b55.d02b96fa1959ea40.3e695da7a59637ef.008d4dcfaf6422d3
+    171fdd16764d3b55.f2ba0f672cdaa671.3e695da7a59637ef.008d4dcfaf6422d3
+    b613a297bc20313a.703ad6b44b6fcd3f.b04a54d6d7f541d1.84cb6ddfb43e0c5d
+    14079fae4227cc03.a6f7e54c12a49957.b4048665f9c1d2c3.52e099c4d4b13e1b
+    c718cbe9aa4af4b8
+
+VMASKMOVPS_256_StoreForm(reg)
+  before
+    3dbe01bcd29469e1.0ec65148236bc8dd.f03c3a9b1e044764.24646e402904a6ef
+    122036a8e91bda42.7e1e324f7cfae0f3.aa57d00c0a1b1214.dd36885383cd7882
+    a08866198b6c8286.41d9c0b168dfd172.3092a30d73753710.bb46508a222506a7
+    44438e7c53129f59.33c4765904275786.dd3ab00af49ff207.9a6043d1221a098b
+    5750db15a0b74059
+  after
+    3dbe01bcd29469e1.0ec65148236bc8dd.f03c3a9b1e044764.24646e402904a6ef
+    122036a8e91bda42.7e1e324f7cfae0f3.aa57d00c0a1b1214.dd36885383cd7882
+    a08866198b6c8286.41d9c0b168dfd172.3092a30d73753710.bb46508a222506a7
+    44438e7c53129f59.33c4765904275786.dd3ab00af49ff207.9a6043d1221a098b
+    5750db15a0b74059
+VMASKMOVPS_256_StoreForm(mem)
+  before
+    cce19640b809653e.5a9da93bdd996b68.30abd1336bdd2d5a.0f9bf16d2a247fa3
+    d6e0ef40851b3566.3fe1b3c3c68e225f.145a4b2bba0d101b.210164a3b0911990
+    511a63ff23f96cfc.4d5da881aa7c02ea.bb9d622d0cc3bcf4.6fb804192371fd7b
+    19596c6bafb0c62d.e15b84df23ef45b4.014091257e0ced12.540bcd391e506710
+    2e47bc713ebb93fa
+  after
+    cce19640b809653e.5a9da93bc68e225f.145a4b2b6bdd2d5a.0f9bf16d2a247fa3
+    d6e0ef40851b3566.3fe1b3c3c68e225f.145a4b2bba0d101b.210164a3b0911990
+    511a63ff23f96cfc.4d5da881aa7c02ea.bb9d622d0cc3bcf4.6fb804192371fd7b
+    19596c6bafb0c62d.e15b84df23ef45b4.014091257e0ced12.540bcd391e506710
+    2e47bc713ebb93fa
+
+VMASKMOVPS_256_StoreForm(reg)
+  before
+    57b9cc2b1e3dbce6.0a69886f444afe24.5729444bd0742869.c20e54ff2bf45ea1
+    2dabf8d55a621f80.001832f7ffd6d10e.0b11e3304b96e7b7.dad427a72f85cccc
+    0b693fda8fb6f873.d731e6effb5dfb16.59605dfa30e1bd47.255e870aa7cdf3c0
+    4c419aa659c6826c.6b7f214355ed376a.9d61ae141ce2e7c8.7f78ef12afd88fa8
+    c4eedbad62b05bb1
+  after
+    57b9cc2b1e3dbce6.0a69886f444afe24.5729444bd0742869.c20e54ff2bf45ea1
+    2dabf8d55a621f80.001832f7ffd6d10e.0b11e3304b96e7b7.dad427a72f85cccc
+    0b693fda8fb6f873.d731e6effb5dfb16.59605dfa30e1bd47.255e870aa7cdf3c0
+    4c419aa659c6826c.6b7f214355ed376a.9d61ae141ce2e7c8.7f78ef12afd88fa8
+    c4eedbad62b05bb1
+VMASKMOVPS_256_StoreForm(mem)
+  before
+    d08cc7c6dc631407.4e7e07a5531efa16.97cf5ddf28924233.3362d2ecaa24a1e4
+    7f1d30493afd76d5.6b6b804319489c1e.39ed18af9156d8a0.77adc6ee76342647
+    ac6e902297883c47.005503ed48d2a42f.2ca5cda0ab47b4db.c59085841e9db49e
+    354c653d1012238b.6a888c0d7b474df6.4cc3f99c93719410.79550b1b3beb8595
+    ef4954206baad5d8
+  after
+    7f1d30493afd76d5.4e7e07a5531efa16.97cf5ddf9156d8a0.77adc6eeaa24a1e4
+    7f1d30493afd76d5.6b6b804319489c1e.39ed18af9156d8a0.77adc6ee76342647
+    ac6e902297883c47.005503ed48d2a42f.2ca5cda0ab47b4db.c59085841e9db49e
+    354c653d1012238b.6a888c0d7b474df6.4cc3f99c93719410.79550b1b3beb8595
+    ef4954206baad5d8
+
+VMASKMOVPD_128_StoreForm(reg)
+  before
+    82b85dfd4a67e212.f5812a86c0a7e7cb.035015104f34d41f.7412169164de326c
+    90ed212073ade6ef.c8d95ce9c4514333.28f99c635f247555.8260a2693a9c4a1b
+    74369cf382091d1c.89227552381ef5f0.36cf1c7148a36b45.5177181232b79a48
+    8addcae41405c545.1627f3ad361ab72e.871d91a5a53ef49a.bc24f477683adc20
+    a133b284f731cdcf
+  after
+    82b85dfd4a67e212.f5812a86c0a7e7cb.035015104f34d41f.7412169164de326c
+    90ed212073ade6ef.c8d95ce9c4514333.28f99c635f247555.8260a2693a9c4a1b
+    74369cf382091d1c.89227552381ef5f0.36cf1c7148a36b45.5177181232b79a48
+    8addcae41405c545.1627f3ad361ab72e.871d91a5a53ef49a.bc24f477683adc20
+    a133b284f731cdcf
+VMASKMOVPD_128_StoreForm(mem)
+  before
+    db70cf25fba82880.2d30a75ec5301815.49b351e7dc4f4518.7830f76d13804901
+    45a7c64691acaa60.bb7930cd30135339.00930beb46cc5ddb.65544b342df6a926
+    bda313d3d4480f9a.8f04609df13cb25d.15939ea48f9ab9a3.aad58766902a4eb4
+    1d3132b8e188135b.041f333aa536702c.667f8400d4c7169b.a4ffa96fd7aa7558
+    ad1eadbb9e025abd
+  after
+    db70cf25fba82880.2d30a75ec5301815.49b351e7dc4f4518.65544b342df6a926
+    45a7c64691acaa60.bb7930cd30135339.00930beb46cc5ddb.65544b342df6a926
+    bda313d3d4480f9a.8f04609df13cb25d.15939ea48f9ab9a3.aad58766902a4eb4
+    1d3132b8e188135b.041f333aa536702c.667f8400d4c7169b.a4ffa96fd7aa7558
+    ad1eadbb9e025abd
+
+VMASKMOVPD_128_StoreForm(reg)
+  before
+    227d8db782bc3990.431ea0e2d37972ce.7815a510e78eca53.cd233bea305e2fef
+    5f6a47cd1f674d7d.0934d73bc726e720.4531b38c54cffc7d.284b3e4ebf6bc2cd
+    c02fd66a108cd32f.4c3f55b1d89c2f7d.c9c1581887854257.51c20a189efb895f
+    a11936fbf1b90653.e90d952e23e50510.5e0f90221d3dd78c.26551934e91940d1
+    81d0e98ebbd2a550
+  after
+    227d8db782bc3990.431ea0e2d37972ce.7815a510e78eca53.cd233bea305e2fef
+    5f6a47cd1f674d7d.0934d73bc726e720.4531b38c54cffc7d.284b3e4ebf6bc2cd
+    c02fd66a108cd32f.4c3f55b1d89c2f7d.c9c1581887854257.51c20a189efb895f
+    a11936fbf1b90653.e90d952e23e50510.5e0f90221d3dd78c.26551934e91940d1
+    81d0e98ebbd2a550
+VMASKMOVPD_128_StoreForm(mem)
+  before
+    3ffff51230317208.5e7463eb5f792494.ba6914a0c3102706.62685714b182f8c9
+    3caeb9ad65426424.528c59a5f558679f.9c1e4cf2d5264f8b.2f17a95ce0e0e1ba
+    55a9b249751136d1.dbac159750e30c20.6bf9bb10743539ca.236a836545e4cd0a
+    64bb5ad47daba63a.5422922c0ca54ec2.04c6dce6bc48a3ef.98ace09b7c19fa66
+    eb28bc6a220ba17a
+  after
+    3ffff51230317208.5e7463eb5f792494.ba6914a0c3102706.62685714b182f8c9
+    3caeb9ad65426424.528c59a5f558679f.9c1e4cf2d5264f8b.2f17a95ce0e0e1ba
+    55a9b249751136d1.dbac159750e30c20.6bf9bb10743539ca.236a836545e4cd0a
+    64bb5ad47daba63a.5422922c0ca54ec2.04c6dce6bc48a3ef.98ace09b7c19fa66
+    eb28bc6a220ba17a
+
+VMASKMOVPD_128_StoreForm(reg)
+  before
+    792b133ed34701f1.46b22f39981b6e8c.1938ccd0c32b6b32.41512b60cb6c4727
+    9c01e2832a585477.d758ac63e36e4bf3.863bc0ef14009c1b.ff66256abaace29e
+    b1f623a5c3cad7b9.f37a4e4079aff89a.f77768f698b0202a.1ad145f1a7143080
+    1456d4113b2ac663.76e48fbb77ea32ae.c738c24feec7320b.6e5d07dfadb0ecf8
+    d7d7e722e98dd332
+  after
+    792b133ed34701f1.46b22f39981b6e8c.1938ccd0c32b6b32.41512b60cb6c4727
+    9c01e2832a585477.d758ac63e36e4bf3.863bc0ef14009c1b.ff66256abaace29e
+    b1f623a5c3cad7b9.f37a4e4079aff89a.f77768f698b0202a.1ad145f1a7143080
+    1456d4113b2ac663.76e48fbb77ea32ae.c738c24feec7320b.6e5d07dfadb0ecf8
+    d7d7e722e98dd332
+VMASKMOVPD_128_StoreForm(mem)
+  before
+    310c61a477b7a15b.216cf0312d035d21.3c62edc0f82cb55a.54c9c967afd20d69
+    58c6f2537238119f.3586747336e1d79e.21bfe33b19803dcb.f97879ab795ceef0
+    28d1141af61ee02a.aaee5a41f2517186.01c8ed19f5f2852d.118fcf86e8f2104e
+    7dfb45e52074ca27.ddf1a009fbde6686.b84a8744a88e4aab.fa5bc663971fb02d
+    0e285ab0236f0a39
+  after
+    310c61a477b7a15b.216cf0312d035d21.3c62edc0f82cb55a.54c9c967afd20d69
+    58c6f2537238119f.3586747336e1d79e.21bfe33b19803dcb.f97879ab795ceef0
+    28d1141af61ee02a.aaee5a41f2517186.01c8ed19f5f2852d.118fcf86e8f2104e
+    7dfb45e52074ca27.ddf1a009fbde6686.b84a8744a88e4aab.fa5bc663971fb02d
+    0e285ab0236f0a39
+
+VMASKMOVPD_256_StoreForm(reg)
+  before
+    ab4287d8276f5a1f.330f01a00b478bc2.2adb4136f014f44a.220f2eaa4f614872
+    2bf549473faadb8b.26d8c237d4a2de28.edf839346a80557e.1be45d3506773bad
+    ec8c9d6908accb28.3223069696918185.8293856f08adc6cd.7f9590d3e8dade89
+    48557daa1d0263a3.33bc47a96e212d04.45fa2053632882e3.2aed436e1198ee32
+    f8baf3f49ebd26d3
+  after
+    ab4287d8276f5a1f.330f01a00b478bc2.2adb4136f014f44a.220f2eaa4f614872
+    2bf549473faadb8b.26d8c237d4a2de28.edf839346a80557e.1be45d3506773bad
+    ec8c9d6908accb28.3223069696918185.8293856f08adc6cd.7f9590d3e8dade89
+    48557daa1d0263a3.33bc47a96e212d04.45fa2053632882e3.2aed436e1198ee32
+    f8baf3f49ebd26d3
+VMASKMOVPD_256_StoreForm(mem)
+  before
+    c5c61a50ab534499.9d9ae7761b37e2a8.056f045d775da1d2.9277064c197bc66d
+    6cde366e526802af.45a8d73a9ed782e2.8308b69ccd51971b.c55733c6c635ce17
+    cbcec23ab2081d42.9dcb4760406f80fd.8b52da548d0acc0a.39e6a32e05dfd68d
+    bd623ba0e43d507d.024f3556a08a18a7.f81bed6fd393fccc.4c7053ee73071979
+    59413d74ab38d48a
+  after
+    6cde366e526802af.45a8d73a9ed782e2.8308b69ccd51971b.9277064c197bc66d
+    6cde366e526802af.45a8d73a9ed782e2.8308b69ccd51971b.c55733c6c635ce17
+    cbcec23ab2081d42.9dcb4760406f80fd.8b52da548d0acc0a.39e6a32e05dfd68d
+    bd623ba0e43d507d.024f3556a08a18a7.f81bed6fd393fccc.4c7053ee73071979
+    59413d74ab38d48a
+
+VMASKMOVPD_256_StoreForm(reg)
+  before
+    bca45f2b49ff436a.1d661b8d0716598e.ce7f9c8657b48689.a52d6adbbaf8e28c
+    d1e7b57eeae6a2c6.c9a5e0eb349cf29e.5ea9785e047a0552.7055cd835e463b77
+    f35439db2a7c2c49.9bed05a88addd7dc.0e17c5494067d2ac.345f9353dc88c3b9
+    8038e9ada34a1ea0.710806ae22e4c671.3b1680b3a9072843.cc17363750cb367d
+    1649341bd5194fef
+  after
+    bca45f2b49ff436a.1d661b8d0716598e.ce7f9c8657b48689.a52d6adbbaf8e28c
+    d1e7b57eeae6a2c6.c9a5e0eb349cf29e.5ea9785e047a0552.7055cd835e463b77
+    f35439db2a7c2c49.9bed05a88addd7dc.0e17c5494067d2ac.345f9353dc88c3b9
+    8038e9ada34a1ea0.710806ae22e4c671.3b1680b3a9072843.cc17363750cb367d
+    1649341bd5194fef
+VMASKMOVPD_256_StoreForm(mem)
+  before
+    ecc008eb8780cb3d.d3dfc060f4deb477.26c360eb1abd798c.3ff2a408dbe745c5
+    2c492f93830c6691.4794ba60b7c32979.95ea8d4a8e75ad57.77f72cb4719263dc
+    b0b12300e4c8db17.3aa5d31a8886ba52.9b490bb699171dff.3f7117230894be34
+    55c2621cc7c0e7fc.065d08f804b2a3b0.15ab551d57af87af.f3ab5ec13b7a947a
+    eff3fffba6cf1f5a
+  after
+    2c492f93830c6691.d3dfc060f4deb477.95ea8d4a8e75ad57.3ff2a408dbe745c5
+    2c492f93830c6691.4794ba60b7c32979.95ea8d4a8e75ad57.77f72cb4719263dc
+    b0b12300e4c8db17.3aa5d31a8886ba52.9b490bb699171dff.3f7117230894be34
+    55c2621cc7c0e7fc.065d08f804b2a3b0.15ab551d57af87af.f3ab5ec13b7a947a
+    eff3fffba6cf1f5a
+
+VMASKMOVPD_256_StoreForm(reg)
+  before
+    8f93f53be61f9c7f.f84867d54700466c.09075367c6d3203d.dddee86ae54aa594
+    2fd83cef97f74795.7311ae168195b492.9df0b2d46b766ca5.d1ac3e895ff333d9
+    2b0ed08254e25b4a.a4e8b3ca908aec9b.206420aa8e26c495.cbe2d567e0b7efab
+    df80ae5fb96d1548.6598f3df91ecabb2.ecaf9a54cb6f64b9.a84c28ee84a19336
+    45b6b30b68bddca5
+  after
+    8f93f53be61f9c7f.f84867d54700466c.09075367c6d3203d.dddee86ae54aa594
+    2fd83cef97f74795.7311ae168195b492.9df0b2d46b766ca5.d1ac3e895ff333d9
+    2b0ed08254e25b4a.a4e8b3ca908aec9b.206420aa8e26c495.cbe2d567e0b7efab
+    df80ae5fb96d1548.6598f3df91ecabb2.ecaf9a54cb6f64b9.a84c28ee84a19336
+    45b6b30b68bddca5
+VMASKMOVPD_256_StoreForm(mem)
+  before
+    7cebf3aba7178525.a77cd0f46323b13b.93eee9409fc6ad04.5e1c1b40c0dd87bc
+    2ab962b95ebc4ce1.de4c34aced906bd1.0ab611d9d624adbd.d3f99ed906fd6a4b
+    2bea7e20a9b8eb07.e23ed5f3f4407eb3.a6bce79653126808.a590218b3b5b4911
+    5b4bc2cea2151fc0.0e9cb03513c02790.44cce764329d9a12.312ea0c2fb8160bc
+    d41f15eae1fdeaf5
+  after
+    7cebf3aba7178525.de4c34aced906bd1.0ab611d9d624adbd.d3f99ed906fd6a4b
+    2ab962b95ebc4ce1.de4c34aced906bd1.0ab611d9d624adbd.d3f99ed906fd6a4b
+    2bea7e20a9b8eb07.e23ed5f3f4407eb3.a6bce79653126808.a590218b3b5b4911
+    5b4bc2cea2151fc0.0e9cb03513c02790.44cce764329d9a12.312ea0c2fb8160bc
+    d41f15eae1fdeaf5
+