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 * AVX-512 CD (Conflict Detection) instructions 18 */ 19 20.text 21.align 16 22.globl libdis_test 23.type libdis_test, @function 24libdis_test: 25 vpconflictd %xmm0, %xmm1 26 vpconflictd %xmm2, %xmm3{%k1} 27 vpconflictd %xmm4, %xmm5{%k2}{z} 28 vpconflictd (%rax), %xmm6 29 vpconflictd 0x167(%rax), %xmm16{%k3} 30 vpconflictd -0x23(%rax,%rbx,4), %xmm17{%k4} 31 vpconflictd (%rcx){1to4}, %xmm18 32 vpconflictd 0x10(%rdx){1to4}, %xmm19{%k5} 33 vpconflictd 0x88(%rcx){1to4}, %xmm19{%k5}{z} 34 35 vpconflictd %ymm0, %ymm1 36 vpconflictd %ymm2, %ymm3{%k1} 37 vpconflictd %ymm4, %ymm5{%k2}{z} 38 vpconflictd (%rax), %ymm6 39 vpconflictd 0x167(%rax), %ymm16{%k3} 40 vpconflictd -0x23(%rax,%rbx,4), %ymm17{%k4} 41 vpconflictd (%rcx){1to8}, %ymm18 42 vpconflictd 0x10(%rdx){1to8}, %ymm19{%k5} 43 vpconflictd 0x88(%rcx){1to8}, %ymm19{%k5}{z} 44 45 vpconflictd %zmm0, %zmm1 46 vpconflictd %zmm2, %zmm3{%k1} 47 vpconflictd %zmm4, %zmm5{%k2}{z} 48 vpconflictd (%rax), %zmm6 49 vpconflictd 0x167(%rax), %zmm16{%k3} 50 vpconflictd -0x23(%rax,%rbx,4), %zmm17{%k4} 51 vpconflictd (%rcx){1to16}, %zmm18 52 vpconflictd 0x10(%rdx){1to16}, %zmm19{%k5} 53 vpconflictd 0x88(%rcx){1to16}, %zmm19{%k5}{z} 54 55 vpconflictq %xmm0, %xmm1 56 vpconflictq %xmm2, %xmm3{%k1} 57 vpconflictq %xmm4, %xmm5{%k2}{z} 58 vpconflictq (%rax), %xmm6 59 vpconflictq 0x167(%rax), %xmm16{%k3} 60 vpconflictq -0x23(%rax,%rbx,4), %xmm17{%k4} 61 vpconflictq (%rcx){1to2}, %xmm18 62 vpconflictq 0x10(%rdx){1to2}, %xmm19{%k5} 63 vpconflictq 0x88(%rcx){1to2}, %xmm19{%k5}{z} 64 65 vpconflictq %ymm0, %ymm1 66 vpconflictq %ymm2, %ymm3{%k1} 67 vpconflictq %ymm4, %ymm5{%k2}{z} 68 vpconflictq (%rax), %ymm6 69 vpconflictq 0x167(%rax), %ymm16{%k3} 70 vpconflictq -0x23(%rax,%rbx,4), %ymm17{%k4} 71 vpconflictq (%rcx){1to4}, %ymm18 72 vpconflictq 0x10(%rdx){1to4}, %ymm19{%k5} 73 vpconflictq 0x88(%rcx){1to4}, %ymm19{%k5}{z} 74 75 vpconflictq %zmm0, %zmm1 76 vpconflictq %zmm2, %zmm3{%k1} 77 vpconflictq %zmm4, %zmm5{%k2}{z} 78 vpconflictq (%rax), %zmm6 79 vpconflictq 0x167(%rax), %zmm16{%k3} 80 vpconflictq -0x23(%rax,%rbx,4), %zmm17{%k4} 81 vpconflictq (%rcx){1to8}, %zmm18 82 vpconflictq 0x10(%rdx){1to8}, %zmm19{%k5} 83 vpconflictq 0x88(%rcx){1to8}, %zmm19{%k5}{z} 84 85 vplzcntd %xmm0, %xmm1 86 vplzcntd %xmm2, %xmm3{%k1} 87 vplzcntd %xmm4, %xmm5{%k2}{z} 88 vplzcntd (%rax), %xmm6 89 vplzcntd 0x167(%rax), %xmm16{%k3} 90 vplzcntd -0x23(%rax,%rbx,4), %xmm17{%k4} 91 vplzcntd (%rcx){1to4}, %xmm18 92 vplzcntd 0x10(%rdx){1to4}, %xmm19{%k5} 93 vplzcntd 0x88(%rcx){1to4}, %xmm19{%k5}{z} 94 95 vplzcntd %ymm0, %ymm1 96 vplzcntd %ymm2, %ymm3{%k1} 97 vplzcntd %ymm4, %ymm5{%k2}{z} 98 vplzcntd (%rax), %ymm6 99 vplzcntd 0x167(%rax), %ymm16{%k3} 100 vplzcntd -0x23(%rax,%rbx,4), %ymm17{%k4} 101 vplzcntd (%rcx){1to8}, %ymm18 102 vplzcntd 0x10(%rdx){1to8}, %ymm19{%k5} 103 vplzcntd 0x88(%rcx){1to8}, %ymm19{%k5}{z} 104 105 vplzcntd %zmm0, %zmm1 106 vplzcntd %zmm2, %zmm3{%k1} 107 vplzcntd %zmm4, %zmm5{%k2}{z} 108 vplzcntd (%rax), %zmm6 109 vplzcntd 0x167(%rax), %zmm16{%k3} 110 vplzcntd -0x23(%rax,%rbx,4), %zmm17{%k4} 111 vplzcntd (%rcx){1to16}, %zmm18 112 vplzcntd 0x10(%rdx){1to16}, %zmm19{%k5} 113 vplzcntd 0x88(%rcx){1to16}, %zmm19{%k5}{z} 114 115 vplzcntq %xmm0, %xmm1 116 vplzcntq %xmm2, %xmm3{%k1} 117 vplzcntq %xmm4, %xmm5{%k2}{z} 118 vplzcntq (%rax), %xmm6 119 vplzcntq 0x167(%rax), %xmm16{%k3} 120 vplzcntq -0x23(%rax,%rbx,4), %xmm17{%k4} 121 vplzcntq (%rcx){1to2}, %xmm18 122 vplzcntq 0x10(%rdx){1to2}, %xmm19{%k5} 123 vplzcntq 0x88(%rcx){1to2}, %xmm19{%k5}{z} 124 125 vplzcntq %ymm0, %ymm1 126 vplzcntq %ymm2, %ymm3{%k1} 127 vplzcntq %ymm4, %ymm5{%k2}{z} 128 vplzcntq (%rax), %ymm6 129 vplzcntq 0x167(%rax), %ymm16{%k3} 130 vplzcntq -0x23(%rax,%rbx,4), %ymm17{%k4} 131 vplzcntq (%rcx){1to4}, %ymm18 132 vplzcntq 0x10(%rdx){1to4}, %ymm19{%k5} 133 vplzcntq 0x88(%rcx){1to4}, %ymm19{%k5}{z} 134 135 vplzcntq %zmm0, %zmm1 136 vplzcntq %zmm2, %zmm3{%k1} 137 vplzcntq %zmm4, %zmm5{%k2}{z} 138 vplzcntq (%rax), %zmm6 139 vplzcntq 0x167(%rax), %zmm16{%k3} 140 vplzcntq -0x23(%rax,%rbx,4), %zmm17{%k4} 141 vplzcntq (%rcx){1to8}, %zmm18 142 vplzcntq 0x10(%rdx){1to8}, %zmm19{%k5} 143 vplzcntq 0x88(%rcx){1to8}, %zmm19{%k5}{z} 144 145 vpbroadcastmb2q %k1, %xmm1 146 vpbroadcastmb2q %k2, %xmm21 147 vpbroadcastmb2q %k3, %ymm2 148 vpbroadcastmb2q %k4, %ymm22 149 vpbroadcastmb2q %k5, %zmm3 150 vpbroadcastmb2q %k6, %zmm13 151 152 vpbroadcastmw2d %k1, %xmm1 153 vpbroadcastmw2d %k2, %xmm21 154 vpbroadcastmw2d %k3, %ymm2 155 vpbroadcastmw2d %k4, %ymm22 156 vpbroadcastmw2d %k5, %zmm3 157 vpbroadcastmw2d %k6, %zmm13 158.size libdis_test, [.-libdis_test] 159