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 Integer Fused Multiply Accumulate (IFMA) instructions. 18 */ 19 20.text 21.align 16 22.globl libdis_test 23.type libdis_test, @function 24libdis_test: 25 vpmadd52huq %xmm0, %xmm1, %xmm2 26 vpmadd52huq %xmm3, %xmm4, %xmm5{%k1} 27 vpmadd52huq %xmm3, %xmm4, %xmm5{%k2}{z} 28 vpmadd52huq (%eax), %xmm0, %xmm7{%k5}{z} 29 vpmadd52huq 0x23(%eax), %xmm3, %xmm2{%k3} 30 vpmadd52huq 0x123(%eax,%ebx,4), %xmm3, %xmm6 31 vpmadd52huq (%eax){1to2}, %xmm6, %xmm7 32 vpmadd52huq 0x54(%eax){1to2}, %xmm6, %xmm7{%k4} 33 34 vpmadd52huq %ymm0, %ymm1, %ymm2 35 vpmadd52huq %ymm3, %ymm4, %ymm5{%k1} 36 vpmadd52huq %ymm3, %ymm4, %ymm5{%k2}{z} 37 vpmadd52huq (%eax), %ymm0, %ymm7{%k5}{z} 38 vpmadd52huq 0x23(%eax), %ymm3, %ymm2{%k3} 39 vpmadd52huq 0x123(%eax,%ebx,4), %ymm3, %ymm6 40 vpmadd52huq (%eax){1to4}, %ymm6, %ymm7 41 vpmadd52huq 0x54(%eax){1to4}, %ymm6, %ymm7{%k4} 42 43 vpmadd52huq %zmm0, %zmm1, %zmm2 44 vpmadd52huq %zmm3, %zmm4, %zmm5{%k1} 45 vpmadd52huq %zmm3, %zmm4, %zmm5{%k2}{z} 46 vpmadd52huq (%eax), %zmm0, %zmm7{%k5}{z} 47 vpmadd52huq 0x23(%eax), %zmm3, %zmm2{%k3} 48 vpmadd52huq 0x123(%eax,%ebx,4), %zmm3, %zmm6 49 vpmadd52huq (%eax){1to8}, %zmm6, %zmm7 50 vpmadd52huq 0x54(%eax){1to8}, %zmm6, %zmm7{%k4} 51 52 vpmadd52luq %xmm0, %xmm1, %xmm2 53 vpmadd52luq %xmm3, %xmm4, %xmm5{%k1} 54 vpmadd52luq %xmm3, %xmm4, %xmm5{%k2}{z} 55 vpmadd52luq (%eax), %xmm0, %xmm7{%k5}{z} 56 vpmadd52luq 0x23(%eax), %xmm3, %xmm2{%k3} 57 vpmadd52luq 0x123(%eax,%ebx,4), %xmm3, %xmm6 58 vpmadd52luq (%eax){1to2}, %xmm6, %xmm7 59 vpmadd52luq 0x54(%eax){1to2}, %xmm6, %xmm7{%k4} 60 61 vpmadd52luq %ymm0, %ymm1, %ymm2 62 vpmadd52luq %ymm3, %ymm4, %ymm5{%k1} 63 vpmadd52luq %ymm3, %ymm4, %ymm5{%k2}{z} 64 vpmadd52luq (%eax), %ymm0, %ymm7{%k5}{z} 65 vpmadd52luq 0x23(%eax), %ymm3, %ymm2{%k3} 66 vpmadd52luq 0x123(%eax,%ebx,4), %ymm3, %ymm6 67 vpmadd52luq (%eax){1to4}, %ymm6, %ymm7 68 vpmadd52luq 0x54(%eax){1to4}, %ymm6, %ymm7{%k4} 69 70 vpmadd52luq %zmm0, %zmm1, %zmm2 71 vpmadd52luq %zmm3, %zmm4, %zmm5{%k1} 72 vpmadd52luq %zmm3, %zmm4, %zmm5{%k2}{z} 73 vpmadd52luq (%eax), %zmm0, %zmm7{%k5}{z} 74 vpmadd52luq 0x23(%eax), %zmm3, %zmm2{%k3} 75 vpmadd52luq 0x123(%eax,%ebx,4), %zmm3, %zmm6 76 vpmadd52luq (%eax){1to8}, %zmm6, %zmm7 77 vpmadd52luq 0x54(%eax){1to8}, %zmm6, %zmm7{%k4} 78.size libdis_test, [.-libdis_test] 79