1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// Set up the 128-bit shadow memory test, by defining the
3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// required vector-copy function, and then including the
4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// template.
5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define VECTOR_BYTES 16
7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovstatic __attribute__((noinline))
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovvoid vector_copy ( void* dst, void* src )
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{
11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  __asm__ __volatile__(
12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov     "movups (%1), %%xmm7 ; movups %%xmm7, (%0)"
13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov     : /*OUT*/ : /*IN*/ "r"(dst), "r"(src) : "memory","xmm7"
14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  );
15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}
16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov// Include the test body, which refers to the above function
18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include "../common/sh-mem-vec128.tmpl.c"
19