1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12/* 13 * Copyright 2017 Joyent, Inc. 14 */ 15 16/* 17 * Basic test for AVX512 mov instructions 18 */ 19 20.text 21.align 16 22.globl libdis_test 23.type libdis_test, @function 24libdis_test: 25 /* bound is not AVX512, but shares the 0x62 opcode on 32-bit. */ 26 bound %eax, (%ebx) 27 28 vmovaps %xmm0, %xmm1 29 vmovaps %xmm2, %xmm3 30 vmovaps %xmm4, %xmm5 31 vmovaps %xmm6, %xmm7 32 33 vmovaps %ymm0, %ymm1 34 vmovaps %ymm2, %ymm3 35 vmovaps %ymm4, %ymm5 36 vmovaps %ymm6, %ymm7 37 38 vmovaps %zmm0, %zmm1 39 vmovaps %zmm2, %zmm3 40 vmovaps %zmm4, %zmm5 41 vmovaps %zmm6, %zmm7 42 43 vmovaps %zmm4, 0x8(%esp) 44 vmovaps 0x8(%esp), %zmm3 45 vmovaps %zmm1, %zmm7{%k1}{z} 46 vmovaps %zmm6, %zmm4{%k7} 47 vmovaps %zmm2, %zmm3{z} 48 49 vmovaps %xmm7, %xmm2{%k3}{z} 50 vmovaps %ymm1, %ymm3{%k5} 51 52 vmovapd %zmm2, %zmm7 53 54 vmovups %zmm7, 0x20(%ebp) 55 vmovups 0x8(%esp), %zmm7 56 vmovups (%eax), %zmm3{z} 57 58 vmovupd (%esp), %zmm1{%k2} 59 vmovupd %zmm6, (%esp) 60 61 /* Test offset handling for both disp8*N and full. */ 62 vmovaps %zmm5, (%esp) 63 vmovaps %zmm5, 0x20(%esp) 64 vmovaps %zmm4, 0x40(%esp) 65 vmovaps %zmm4, 0x60(%esp) 66 vmovaps %zmm4, 0x80(%esp) 67 vmovaps %zmm4, -0x80(%esp) 68 vmovaps %zmm4, -0x20(%esp) 69 70 vmovaps (%esp), %zmm5 71 vmovaps 0x20(%esp), %zmm5 72 vmovaps 0x40(%esp), %zmm5 73 vmovaps 0x60(%esp), %zmm5 74 vmovaps 0x80(%esp), %zmm5 75 vmovaps -0x80(%esp), %zmm5 76 vmovaps -0x20(%esp), %zmm5 77 78 vmovdqa32 %zmm6, 0x100(%esp) 79 vmovdqa32 %ymm6, 0x100(%esp) 80 vmovdqa32 %xmm6, 0x100(%esp) 81 vmovdqa32 (%eax), %zmm6 82 vmovdqa32 (%eax), %ymm6 83 vmovdqa32 (%eax), %xmm6 84 85 vmovdqa64 %zmm6, 0x100(%esp) 86 vmovdqa64 %ymm6, 0x100(%esp) 87 vmovdqa64 %xmm6, 0x100(%esp) 88 vmovdqa64 0x800(%esp), %zmm6 89 vmovdqa64 0x800(%esp), %ymm6 90 vmovdqa64 0x800(%esp), %xmm6 91 92 vmovdqu8 %zmm0, (%esp) 93 vmovdqu16 %zmm0, (%esp) 94 vmovdqu32 %zmm0, (%esp) 95 vmovdqu64 %zmm0, (%esp) 96 vmovdqu8 (%esp), %zmm0 97 vmovdqu16 (%esp), %zmm0 98 vmovdqu32 (%esp), %zmm0 99 vmovdqu64 (%esp), %zmm0 100.size libdis_test, [.-libdis_test] 101