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 vmovaps %xmm0, %xmm1 26 vmovaps %xmm2, %xmm3 27 vmovaps %xmm4, %xmm5 28 vmovaps %xmm6, %xmm7 29 vmovaps %xmm8, %xmm9 30 vmovaps %xmm10, %xmm11 31 vmovaps %xmm12, %xmm13 32 vmovaps %xmm14, %xmm15 33 vmovaps %xmm16, %xmm17 34 vmovaps %xmm18, %xmm19 35 vmovaps %xmm20, %xmm21 36 vmovaps %xmm22, %xmm23 37 vmovaps %xmm24, %xmm25 38 vmovaps %xmm26, %xmm27 39 vmovaps %xmm28, %xmm29 40 vmovaps %xmm30, %xmm31 41 42 vmovaps %ymm0, %ymm1 43 vmovaps %ymm2, %ymm3 44 vmovaps %ymm4, %ymm5 45 vmovaps %ymm6, %ymm7 46 vmovaps %ymm8, %ymm9 47 vmovaps %ymm10, %ymm11 48 vmovaps %ymm12, %ymm13 49 vmovaps %ymm14, %ymm15 50 vmovaps %ymm16, %ymm17 51 vmovaps %ymm18, %ymm19 52 vmovaps %ymm20, %ymm21 53 vmovaps %ymm22, %ymm23 54 vmovaps %ymm24, %ymm25 55 vmovaps %ymm26, %ymm27 56 vmovaps %ymm28, %ymm29 57 vmovaps %ymm30, %ymm31 58 59 vmovaps %zmm0, %zmm1 60 vmovaps %zmm2, %zmm3 61 vmovaps %zmm4, %zmm5 62 vmovaps %zmm6, %zmm7 63 vmovaps %zmm8, %zmm9 64 vmovaps %zmm10, %zmm11 65 vmovaps %zmm12, %zmm13 66 vmovaps %zmm14, %zmm15 67 vmovaps %zmm16, %zmm17 68 vmovaps %zmm18, %zmm19 69 vmovaps %zmm20, %zmm21 70 vmovaps %zmm22, %zmm23 71 vmovaps %zmm24, %zmm25 72 vmovaps %zmm26, %zmm27 73 vmovaps %zmm28, %zmm29 74 vmovaps %zmm30, %zmm31 75 76 vmovaps %zmm24, 0x8(%rsp) 77 vmovaps 0x8(%rsp), %zmm31 78 vmovaps %zmm13, %zmm17{%k1}{z} 79 vmovaps %zmm16, %zmm24{%k7} 80 vmovaps %zmm28, %zmm29{z} 81 82 vmovaps %xmm16, %xmm25 83 vmovaps %xmm7, %xmm20{%k3}{z} 84 vmovaps %ymm1, %ymm16 85 vmovaps %ymm19, %ymm30{%k5} 86 87 vmovapd %zmm2, %zmm7 88 vmovapd %xmm16, %xmm25 89 vmovapd %ymm16, %ymm29 90 91 vmovups %zmm7, 0x20(%rbp) 92 vmovups 0x8(%rsp), %zmm17 93 vmovups (%rax), %zmm23{z} 94 vmovups %xmm16, %xmm25 95 vmovups %ymm16, %ymm29 96 97 vmovupd (%r10), %zmm31{%k2} 98 vmovupd %zmm16, (%r11) 99 vmovupd %xmm16, %xmm25 100 vmovupd %ymm16, %ymm29 101 102 /* Test offset handling for both disp8*N and full. */ 103 vmovaps %zmm25, (%rsp) 104 vmovaps %zmm25, 0x20(%rsp) 105 vmovaps %zmm24, 0x40(%rsp) 106 vmovaps %zmm24, 0x60(%rsp) 107 vmovaps %zmm24, 0x80(%rsp) 108 vmovaps %zmm24, -0x80(%rsp) 109 vmovaps %zmm24, -0x20(%rsp) 110 111 vmovaps %ymm24, 0x10(%rsp) 112 vmovaps %ymm24, 0x20(%rsp) 113 vmovaps %ymm24, 0x40(%rsp) 114 115 vmovaps %xmm24, 0x8(%rsp) 116 vmovaps %xmm24, 0x10(%rsp) 117 vmovaps %xmm24, 0x20(%rsp) 118 119 vmovaps (%rsp), %zmm25 120 vmovaps 0x20(%rsp), %zmm25 121 vmovaps 0x40(%rsp), %zmm25 122 vmovaps 0x60(%rsp), %zmm25 123 vmovaps 0x80(%rsp), %zmm25 124 vmovaps -0x80(%rsp), %zmm25 125 vmovaps -0x20(%rsp), %zmm25 126 127 vmovaps 0x10(%rsp), %ymm25 128 vmovaps 0x20(%rsp), %ymm25 129 vmovaps 0x40(%rsp), %ymm25 130 131 vmovaps 0x8(%rsp), %xmm25 132 vmovaps 0x10(%rsp), %xmm25 133 vmovaps 0x20(%rsp), %xmm25 134 135 vmovdqa32 %zmm6, 0x100(%rsp) 136 vmovdqa32 %ymm26, 0x100(%rsp) 137 vmovdqa32 %xmm16, 0x100(%rsp) 138 vmovdqa32 (%rcx), %zmm6 139 vmovdqa32 (%rcx), %ymm26 140 vmovdqa32 (%rcx), %xmm16 141 142 vmovdqa64 %zmm16, 0x100(%rsp) 143 vmovdqa64 %ymm26, 0x100(%rsp) 144 vmovdqa64 %xmm16, 0x100(%rsp) 145 vmovdqa64 0x800(%rsp), %zmm16 146 vmovdqa64 0x800(%rsp), %ymm26 147 vmovdqa64 0x800(%rsp), %xmm16 148 149 vmovdqu8 %zmm20, (%rsp) 150 vmovdqu16 %zmm20, (%rsp) 151 vmovdqu32 %zmm20, (%rsp) 152 vmovdqu64 %zmm20, (%rsp) 153 vmovdqu8 (%rsp), %zmm20 154 vmovdqu16 (%rsp), %zmm20 155 vmovdqu32 (%rsp), %zmm20 156 vmovdqu64 (%rsp), %zmm20 157.size libdis_test, [.-libdis_test] 158