diff options
Diffstat (limited to 'reproducers/issue-1861404.c')
| -rw-r--r-- | reproducers/issue-1861404.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/reproducers/issue-1861404.c b/reproducers/issue-1861404.c new file mode 100644 index 0000000..c83dbc2 --- /dev/null +++ b/reproducers/issue-1861404.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <string.h> + +#define YMM_SIZE (32) // bytes + +void hex_dump(unsigned char *data, unsigned int len) { + for(unsigned int i=0; i<len; i++) { + printf("%02X ", data[i]); + } + printf("\n"); +} + +void set_ymm0(unsigned char m[YMM_SIZE]) { +} + +void get_ymm0(unsigned char m[YMM_SIZE]) { + __asm__ __volatile__ ("vmovdqu %%ymm0, (%0);"::"r"(m):); +} + +int main() { + unsigned char src[YMM_SIZE] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f}; + unsigned char dst[YMM_SIZE] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; + + __asm__ __volatile__ ("vmovdqu (%0), %%ymm0;"::"r"(src):); + + hex_dump(dst, YMM_SIZE); + + return 0; +} |