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 %xmm20, %xmm21 26 vpopcntb (%r10), %xmm22 27 vpopcntb 0x64(%r9), %xmm23 28 vpopcntb 0x64(%r10,%r11,4), %xmm19 29 vpopcntb %xmm24, %xmm25{%k2} 30 vpopcntb %xmm26, %xmm27{%k3}{z} 31 vpopcntb 0x7777(%rax), %xmm28{%k4} 32 vpopcntb 0x6666(%rax), %xmm29{%k5}{z} 33 34 vpopcntb %ymm20, %ymm21 35 vpopcntb (%r10), %ymm22 36 vpopcntb 0x64(%r9), %ymm23 37 vpopcntb 0x64(%r10,%r11,4), %ymm19 38 vpopcntb %ymm24, %ymm25{%k2} 39 vpopcntb %ymm26, %ymm27{%k3}{z} 40 vpopcntb 0x7777(%rax), %ymm28{%k4} 41 vpopcntb 0x6666(%rax), %ymm29{%k5}{z} 42 43 vpopcntb %zmm20, %zmm21 44 vpopcntb (%r10), %zmm22 45 vpopcntb 0x64(%r9), %zmm23 46 vpopcntb 0x64(%r10,%r11,4), %zmm19 47 vpopcntb %zmm24, %zmm25{%k2} 48 vpopcntb %zmm26, %zmm27{%k3}{z} 49 vpopcntb 0x7777(%rax), %zmm28{%k4} 50 vpopcntb 0x6666(%rax), %zmm29{%k5}{z} 51 52 vpopcntw %xmm20, %xmm21 53 vpopcntw (%r10), %xmm22 54 vpopcntw 0x64(%r9), %xmm23 55 vpopcntw 0x64(%r10,%r11,4), %xmm19 56 vpopcntw %xmm24, %xmm25{%k2} 57 vpopcntw %xmm26, %xmm27{%k3}{z} 58 vpopcntw 0x7777(%rax), %xmm28{%k4} 59 vpopcntw 0x6666(%rax), %xmm29{%k5}{z} 60 61 vpopcntw %ymm20, %ymm21 62 vpopcntw (%r10), %ymm22 63 vpopcntw 0x64(%r9), %ymm23 64 vpopcntw 0x64(%r10,%r11,4), %ymm19 65 vpopcntw %ymm24, %ymm25{%k2} 66 vpopcntw %ymm26, %ymm27{%k3}{z} 67 vpopcntw 0x7777(%rax), %ymm28{%k4} 68 vpopcntw 0x6666(%rax), %ymm29{%k5}{z} 69 70 vpopcntw %zmm20, %zmm21 71 vpopcntw (%r10), %zmm22 72 vpopcntw 0x64(%r9), %zmm23 73 vpopcntw 0x64(%r10,%r11,4), %zmm19 74 vpopcntw %zmm24, %zmm25{%k2} 75 vpopcntw %zmm26, %zmm27{%k3}{z} 76 vpopcntw 0x7777(%rax), %zmm28{%k4} 77 vpopcntw 0x6666(%rax), %zmm29{%k5}{z} 78 79 vpopcntd %xmm20, %xmm21 80 vpopcntd (%r10), %xmm22 81 vpopcntd 0x64(%r9), %xmm23 82 vpopcntd 0x64(%r10,%r11,4), %xmm19 83 vpopcntd %xmm24, %xmm25{%k2} 84 vpopcntd %xmm26, %xmm27{%k3}{z} 85 vpopcntd 0x7777(%rax), %xmm28{%k4} 86 vpopcntd 0x6666(%rax), %xmm29{%k5}{z} 87 vpopcntd (%rcx){1to4}, %xmm7 88 vpopcntd 0x12345(%rcx){1to4}, %xmm7 89 90 vpopcntd %ymm20, %ymm21 91 vpopcntd (%r10), %ymm22 92 vpopcntd 0x64(%r9), %ymm23 93 vpopcntd 0x64(%r10,%r11,4), %ymm19 94 vpopcntd %ymm24, %ymm25{%k2} 95 vpopcntd %ymm26, %ymm27{%k3}{z} 96 vpopcntd 0x7777(%rax), %ymm28{%k4} 97 vpopcntd 0x6666(%rax), %ymm29{%k5}{z} 98 vpopcntd (%rcx){1to8}, %ymm7 99 vpopcntd 0x54321(%rcx){1to8}, %ymm7 100 101 vpopcntd %zmm20, %zmm21 102 vpopcntd (%r10), %zmm22 103 vpopcntd 0x64(%r9), %zmm23 104 vpopcntd 0x64(%r10,%r11,4), %zmm19 105 vpopcntd %zmm24, %zmm25{%k2} 106 vpopcntd %zmm26, %zmm27{%k3}{z} 107 vpopcntd 0x7777(%rax), %zmm28{%k4} 108 vpopcntd 0x6666(%rax), %zmm29{%k5}{z} 109 vpopcntd (%rcx){1to16}, %zmm7 110 vpopcntd 0x34543(%rcx){1to16}, %zmm7 111 112 vpopcntq %xmm20, %xmm21 113 vpopcntq (%r10), %xmm22 114 vpopcntq 0x64(%r9), %xmm23 115 vpopcntq 0x64(%r10,%r11,4), %xmm19 116 vpopcntq %xmm24, %xmm25{%k2} 117 vpopcntq %xmm26, %xmm27{%k3}{z} 118 vpopcntq 0x7777(%rax), %xmm28{%k4} 119 vpopcntq 0x6666(%rax), %xmm29{%k5}{z} 120 vpopcntq (%rcx){1to2}, %xmm7 121 vpopcntq 0x12345(%rcx){1to2}, %xmm7 122 123 vpopcntq %ymm20, %ymm21 124 vpopcntq (%r10), %ymm22 125 vpopcntq 0x64(%r9), %ymm23 126 vpopcntq 0x64(%r10,%r11,4), %ymm19 127 vpopcntq %ymm24, %ymm25{%k2} 128 vpopcntq %ymm26, %ymm27{%k3}{z} 129 vpopcntq 0x7777(%rax), %ymm28{%k4} 130 vpopcntq 0x6666(%rax), %ymm29{%k5}{z} 131 vpopcntq (%rcx){1to4}, %ymm7 132 vpopcntq 0x54321(%rcx){1to4}, %ymm7 133 134 vpopcntq %zmm20, %zmm21 135 vpopcntq (%r10), %zmm22 136 vpopcntq 0x64(%r9), %zmm23 137 vpopcntq 0x64(%r10,%r11,4), %zmm19 138 vpopcntq %zmm24, %zmm25{%k2} 139 vpopcntq %zmm26, %zmm27{%k3}{z} 140 vpopcntq 0x7777(%rax), %zmm28{%k4} 141 vpopcntq 0x6666(%rax), %zmm29{%k5}{z} 142 vpopcntq (%rcx){1to8}, %zmm7 143 vpopcntq 0x34543(%rcx){1to8}, %zmm7 144 145 vpshufbitqmb %xmm1, %xmm2, %k3 146 vpshufbitqmb %xmm11, %xmm12, %k4{%k5} 147 vpshufbitqmb (%r10), %xmm22, %k0 148 vpshufbitqmb (%r10), %xmm22, %k0{%k1} 149 vpshufbitqmb 0x167(%r10), %xmm22, %k0 150 vpshufbitqmb 0x761(%r10), %xmm22, %k0{%k1} 151 vpshufbitqmb 0x167(%r10, %r8, 4), %xmm22, %k0 152 vpshufbitqmb 0x761(%r10, %r9, 8), %xmm22, %k0{%k1} 153 154 vpshufbitqmb %ymm1, %ymm2, %k3 155 vpshufbitqmb %ymm11, %ymm12, %k4{%k5} 156 vpshufbitqmb (%r10), %ymm22, %k0 157 vpshufbitqmb (%r10), %ymm22, %k0{%k1} 158 vpshufbitqmb 0x167(%r10), %ymm22, %k0 159 vpshufbitqmb 0x761(%r10), %ymm22, %k0{%k1} 160 vpshufbitqmb 0x167(%r10, %r8, 4), %ymm22, %k0 161 vpshufbitqmb 0x761(%r10, %r9, 8), %ymm22, %k0{%k1} 162 163 vpshufbitqmb %zmm1, %zmm2, %k3 164 vpshufbitqmb %zmm11, %zmm12, %k4{%k5} 165 vpshufbitqmb (%r10), %zmm22, %k0 166 vpshufbitqmb (%r10), %zmm22, %k0{%k1} 167 vpshufbitqmb 0x167(%r10), %zmm22, %k0 168 vpshufbitqmb 0x761(%r10), %zmm22, %k0{%k1} 169 vpshufbitqmb 0x167(%r10, %r8, 4), %zmm22, %k0 170 vpshufbitqmb 0x761(%r10, %r9, 8), %zmm22, %k0{%k1} 171.size libdis_test, [.-libdis_test] 172