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 2024 Oxide Computer Company 14 */ 15 16/* 17 * AVX512 bit algorithms (BITALG) and vpopcntdq. 18 */ 19 20.text 21.align 16 22.globl libdis_test 23.type libdis_test, @function 24libdis_test: 25 vpopcntb %xmm0, %xmm7 26 vpopcntb (%edi), %xmm7 27 vpopcntb 0x64(%edx), %xmm6 28 vpopcntb 0x64(%edi,%ebx,4), %xmm1 29 vpopcntb %xmm4, %xmm5{%k2} 30 vpopcntb %xmm6, %xmm7{%k3}{z} 31 vpopcntb 0x7777(%eax), %xmm7{%k4} 32 vpopcntb 0x6666(%eax), %xmm0{%k5}{z} 33 34 vpopcntb %ymm0, %ymm7 35 vpopcntb (%edi), %ymm7 36 vpopcntb 0x64(%edx), %ymm6 37 vpopcntb 0x64(%edi,%ebx,4), %ymm1 38 vpopcntb %ymm4, %ymm5{%k2} 39 vpopcntb %ymm6, %ymm7{%k3}{z} 40 vpopcntb 0x7777(%eax), %ymm7{%k4} 41 vpopcntb 0x6666(%eax), %ymm0{%k5}{z} 42 43 vpopcntb %zmm0, %zmm7 44 vpopcntb (%edi), %zmm7 45 vpopcntb 0x64(%edx), %zmm6 46 vpopcntb 0x64(%edi,%ebx,4), %zmm1 47 vpopcntb %zmm4, %zmm5{%k2} 48 vpopcntb %zmm6, %zmm7{%k3}{z} 49 vpopcntb 0x7777(%eax), %zmm7{%k4} 50 vpopcntb 0x6666(%eax), %zmm0{%k5}{z} 51 52 vpopcntw %xmm0, %xmm7 53 vpopcntw (%edi), %xmm7 54 vpopcntw 0x64(%edx), %xmm6 55 vpopcntw 0x64(%edi,%ebx,4), %xmm1 56 vpopcntw %xmm4, %xmm5{%k2} 57 vpopcntw %xmm6, %xmm7{%k3}{z} 58 vpopcntw 0x7777(%eax), %xmm7{%k4} 59 vpopcntw 0x6666(%eax), %xmm0{%k5}{z} 60 61 vpopcntw %ymm0, %ymm7 62 vpopcntw (%edi), %ymm7 63 vpopcntw 0x64(%edx), %ymm6 64 vpopcntw 0x64(%edi,%ebx,4), %ymm1 65 vpopcntw %ymm4, %ymm5{%k2} 66 vpopcntw %ymm6, %ymm7{%k3}{z} 67 vpopcntw 0x7777(%eax), %ymm7{%k4} 68 vpopcntw 0x6666(%eax), %ymm0{%k5}{z} 69 70 vpopcntw %zmm0, %zmm7 71 vpopcntw (%edi), %zmm7 72 vpopcntw 0x64(%edx), %zmm6 73 vpopcntw 0x64(%edi,%ebx,4), %zmm1 74 vpopcntw %zmm4, %zmm5{%k2} 75 vpopcntw %zmm6, %zmm7{%k3}{z} 76 vpopcntw 0x7777(%eax), %zmm7{%k4} 77 vpopcntw 0x6666(%eax), %zmm0{%k5}{z} 78 79 vpopcntd %xmm0, %xmm7 80 vpopcntd (%edi), %xmm7 81 vpopcntd 0x64(%edx), %xmm6 82 vpopcntd 0x64(%edi,%ebx,4), %xmm1 83 vpopcntd %xmm4, %xmm5{%k2} 84 vpopcntd %xmm6, %xmm7{%k3}{z} 85 vpopcntd 0x7777(%eax), %xmm7{%k4} 86 vpopcntd 0x6666(%eax), %xmm0{%k5}{z} 87 vpopcntd (%ecx){1to4}, %xmm7 88 vpopcntd 0x12345(%ecx){1to4}, %xmm7 89 90 vpopcntd %ymm0, %ymm7 91 vpopcntd (%edi), %ymm7 92 vpopcntd 0x64(%edx), %ymm6 93 vpopcntd 0x64(%edi,%ebx,4), %ymm1 94 vpopcntd %ymm4, %ymm5{%k2} 95 vpopcntd %ymm6, %ymm7{%k3}{z} 96 vpopcntd 0x7777(%eax), %ymm7{%k4} 97 vpopcntd 0x6666(%eax), %ymm0{%k5}{z} 98 vpopcntd (%ecx){1to8}, %ymm7 99 vpopcntd 0x54321(%ecx){1to8}, %ymm7 100 101 vpopcntd %zmm0, %zmm7 102 vpopcntd (%edi), %zmm7 103 vpopcntd 0x64(%edx), %zmm6 104 vpopcntd 0x64(%edi,%ebx,4), %zmm1 105 vpopcntd %zmm4, %zmm5{%k2} 106 vpopcntd %zmm6, %zmm7{%k3}{z} 107 vpopcntd 0x7777(%eax), %zmm7{%k4} 108 vpopcntd 0x6666(%eax), %zmm0{%k5}{z} 109 vpopcntd (%ecx){1to16}, %zmm7 110 vpopcntd 0x34543(%ecx){1to16}, %zmm7 111 112 vpopcntq %xmm0, %xmm7 113 vpopcntq (%edi), %xmm7 114 vpopcntq 0x64(%edx), %xmm6 115 vpopcntq 0x64(%edi,%ebx,4), %xmm1 116 vpopcntq %xmm4, %xmm5{%k2} 117 vpopcntq %xmm6, %xmm7{%k3}{z} 118 vpopcntq 0x7777(%eax), %xmm7{%k4} 119 vpopcntq 0x6666(%eax), %xmm0{%k5}{z} 120 vpopcntq (%ecx){1to2}, %xmm7 121 vpopcntq 0x12345(%ecx){1to2}, %xmm7 122 123 vpopcntq %ymm0, %ymm7 124 vpopcntq (%edi), %ymm7 125 vpopcntq 0x64(%edx), %ymm6 126 vpopcntq 0x64(%edi,%ebx,4), %ymm1 127 vpopcntq %ymm4, %ymm5{%k2} 128 vpopcntq %ymm6, %ymm7{%k3}{z} 129 vpopcntq 0x7777(%eax), %ymm7{%k4} 130 vpopcntq 0x6666(%eax), %ymm0{%k5}{z} 131 vpopcntq (%ecx){1to4}, %ymm7 132 vpopcntq 0x54321(%ecx){1to4}, %ymm7 133 134 vpopcntq %zmm0, %zmm7 135 vpopcntq (%edi), %zmm7 136 vpopcntq 0x64(%edx), %zmm6 137 vpopcntq 0x64(%edi,%ebx,4), %zmm1 138 vpopcntq %zmm4, %zmm5{%k2} 139 vpopcntq %zmm6, %zmm7{%k3}{z} 140 vpopcntq 0x7777(%eax), %zmm7{%k4} 141 vpopcntq 0x6666(%eax), %zmm0{%k5}{z} 142 vpopcntq (%ecx){1to8}, %zmm7 143 vpopcntq 0x34543(%ecx){1to8}, %zmm7 144 145 vpshufbitqmb %xmm1, %xmm2, %k3 146 vpshufbitqmb %xmm3, %xmm4, %k4{%k5} 147 vpshufbitqmb (%edi), %xmm7, %k0 148 vpshufbitqmb (%edi), %xmm7, %k0{%k1} 149 vpshufbitqmb 0x167(%edi), %xmm7, %k0 150 vpshufbitqmb 0x761(%edi), %xmm7, %k0{%k1} 151 vpshufbitqmb 0x167(%edi, %esi, 4), %xmm7, %k0 152 vpshufbitqmb 0x761(%edi, %edx, 8), %xmm7, %k0{%k1} 153 154 vpshufbitqmb %ymm1, %ymm2, %k3 155 vpshufbitqmb %ymm3, %ymm4, %k4{%k5} 156 vpshufbitqmb (%edi), %ymm7, %k0 157 vpshufbitqmb (%edi), %ymm7, %k0{%k1} 158 vpshufbitqmb 0x167(%edi), %ymm7, %k0 159 vpshufbitqmb 0x761(%edi), %ymm7, %k0{%k1} 160 vpshufbitqmb 0x167(%edi, %esi, 4), %ymm7, %k0 161 vpshufbitqmb 0x761(%edi, %edx, 8), %ymm7, %k0{%k1} 162 163 vpshufbitqmb %zmm1, %zmm2, %k3 164 vpshufbitqmb %zmm3, %zmm4, %k4{%k5} 165 vpshufbitqmb (%edi), %zmm7, %k0 166 vpshufbitqmb (%edi), %zmm7, %k0{%k1} 167 vpshufbitqmb 0x167(%edi), %zmm7, %k0 168 vpshufbitqmb 0x761(%edi), %zmm7, %k0{%k1} 169 vpshufbitqmb 0x167(%edi, %esi, 4), %zmm7, %k0 170 vpshufbitqmb 0x761(%edi, %edx, 8), %zmm7, %k0{%k1} 171.size libdis_test, [.-libdis_test] 172