From 8f7b7f9e15fb7776b210665816869b23de0ab398 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 21 Aug 2026 04:43:16 +0000 Subject: [PATCH 1/3] Add AVX-512 FP16 high-accuracy (HA) functions Functions added: acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, cos, cosh, exp, exp2, exp10, expm1, log, log2, log10, log1p, pow, sin, sinh, tan, tanh --- linux/avx512/svml_z0_acos_h_ha.s | 188 ++++ linux/avx512/svml_z0_acosh_h_ha.s | 296 ++++++ linux/avx512/svml_z0_asin_h_ha.s | 185 ++++ linux/avx512/svml_z0_asinh_h_ha.s | 334 +++++++ linux/avx512/svml_z0_atan2_h_ha.s | 379 +++++++ linux/avx512/svml_z0_atan_h_ha.s | 223 +++++ linux/avx512/svml_z0_atanh_h_ha.s | 230 +++++ linux/avx512/svml_z0_cbrt_h_ha.s | 257 +++++ linux/avx512/svml_z0_cos_h_ha.s | 1520 ++++++++++++++++++++++++++++ linux/avx512/svml_z0_cosh_h_ha.s | 223 +++++ linux/avx512/svml_z0_exp10_h_ha.s | 457 +++++++++ linux/avx512/svml_z0_exp2_h_ha.s | 428 ++++++++ linux/avx512/svml_z0_exp_h_ha.s | 755 ++++++++++++++ linux/avx512/svml_z0_expm1_h_ha.s | 174 ++++ linux/avx512/svml_z0_log10_h_ha.s | 395 ++++++++ linux/avx512/svml_z0_log1p_h_ha.s | 207 ++++ linux/avx512/svml_z0_log2_h_ha.s | 346 +++++++ linux/avx512/svml_z0_log_h_ha.s | 543 ++++++++++ linux/avx512/svml_z0_pow_h_ha.s | 401 ++++++++ linux/avx512/svml_z0_sin_h_ha.s | 1557 +++++++++++++++++++++++++++++ linux/avx512/svml_z0_sinh_h_ha.s | 282 ++++++ linux/avx512/svml_z0_tan_h_ha.s | 228 +++++ linux/avx512/svml_z0_tanh_h_ha.s | 218 ++++ 23 files changed, 9826 insertions(+) create mode 100644 linux/avx512/svml_z0_acos_h_ha.s create mode 100644 linux/avx512/svml_z0_acosh_h_ha.s create mode 100644 linux/avx512/svml_z0_asin_h_ha.s create mode 100644 linux/avx512/svml_z0_asinh_h_ha.s create mode 100644 linux/avx512/svml_z0_atan2_h_ha.s create mode 100644 linux/avx512/svml_z0_atan_h_ha.s create mode 100644 linux/avx512/svml_z0_atanh_h_ha.s create mode 100644 linux/avx512/svml_z0_cbrt_h_ha.s create mode 100644 linux/avx512/svml_z0_cos_h_ha.s create mode 100644 linux/avx512/svml_z0_cosh_h_ha.s create mode 100644 linux/avx512/svml_z0_exp10_h_ha.s create mode 100644 linux/avx512/svml_z0_exp2_h_ha.s create mode 100644 linux/avx512/svml_z0_exp_h_ha.s create mode 100644 linux/avx512/svml_z0_expm1_h_ha.s create mode 100644 linux/avx512/svml_z0_log10_h_ha.s create mode 100644 linux/avx512/svml_z0_log1p_h_ha.s create mode 100644 linux/avx512/svml_z0_log2_h_ha.s create mode 100644 linux/avx512/svml_z0_log_h_ha.s create mode 100644 linux/avx512/svml_z0_pow_h_ha.s create mode 100644 linux/avx512/svml_z0_sin_h_ha.s create mode 100644 linux/avx512/svml_z0_sinh_h_ha.s create mode 100644 linux/avx512/svml_z0_tan_h_ha.s create mode 100644 linux/avx512/svml_z0_tanh_h_ha.s diff --git a/linux/avx512/svml_z0_acos_h_ha.s b/linux/avx512/svml_z0_acos_h_ha.s new file mode 100644 index 0000000..dc59ae8 --- /dev/null +++ b/linux/avx512/svml_z0_acos_h_ha.s @@ -0,0 +1,188 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_acoss32_ha # -- Begin function __svml_acoss32_ha + .p2align 4 + .type __svml_acoss32_ha,@function +__svml_acoss32_ha: # + .cfi_startproc +# %bb.0: + kmovq %k4, -8(%rsp) # 8-byte Spill + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hacos_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm2, %zmm3 + vandps %zmm0, %zmm2, %zmm2 + vxorps %zmm1, %zmm3, %zmm4 + vxorps %zmm0, %zmm2, %zmm5 + vmovups __svml_hacos_ha_data_internal+64(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm6, %zmm7 + vcmpnltps %zmm6, %zmm3, %k2 + vcmpnltps %zmm6, %zmm2, %k1 + vfnmadd213ps {rn-sae}, %zmm6, %zmm3, %zmm6 + vfnmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm7 + vmulps {rn-sae}, %zmm1, %zmm1, %zmm1 + vmulps {rn-sae}, %zmm0, %zmm0, %zmm0 + vminps {sae}, %zmm6, %zmm1, %zmm1 + vminps {sae}, %zmm7, %zmm0, %zmm0 + vmovups __svml_hacos_ha_data_internal+128(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vxorps %zmm8, %zmm4, %zmm9 + vxorps %zmm8, %zmm5, %zmm10 + vmovaps %zmm8, %zmm11 + vsubps {rn-sae}, %zmm9, %zmm8, %zmm11 {%k2} + vsubps {rn-sae}, %zmm10, %zmm8, %zmm8 {%k1} + vmovups __svml_hacos_ha_data_internal+192(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vcmpneqps %zmm9, %zmm6, %k3 + vcmpneqps %zmm9, %zmm7, %k4 + vrsqrt14ps %zmm6, %zmm9 + vrsqrt14ps %zmm7, %zmm10 + vmulps {rn-sae}, %zmm9, %zmm6, %zmm6 {%k3} + vmulps {rn-sae}, %zmm10, %zmm7, %zmm7 {%k4} + vmovups __svml_hacos_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacos_ha_data_internal+320(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacos_ha_data_internal+384(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm13 + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm13 + vfmadd213ps {rn-sae}, %zmm10, %zmm0, %zmm9 + vfmadd213ps {rn-sae}, %zmm12, %zmm1, %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm0, %zmm9 + vmovups __svml_hacos_ha_data_internal+448(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vmulps {rn-sae}, %zmm0, %zmm6, %zmm3 {%k2} + vmulps {rn-sae}, %zmm0, %zmm7, %zmm2 {%k1} + vxorps %zmm3, %zmm4, %zmm0 + vfnmadd213ps {rn-sae}, %zmm11, %zmm13, %zmm0 + vxorps %zmm2, %zmm5, %zmm1 + vfnmadd213ps {rn-sae}, %zmm8, %zmm9, %zmm1 + vcvtps2phx %zmm0, %ymm0 + vcvtps2phx %zmm1, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + kmovq -8(%rsp), %k4 # 8-byte Reload + retq +.Lfunc_end0: + .size __svml_acoss32_ha, .Lfunc_end0-__svml_acoss32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hacos_ha_data_internal: + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .zero 64 + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .size __svml_hacos_ha_data_internal, 512 + + diff --git a/linux/avx512/svml_z0_acosh_h_ha.s b/linux/avx512/svml_z0_acosh_h_ha.s new file mode 100644 index 0000000..371e4df --- /dev/null +++ b/linux/avx512/svml_z0_acosh_h_ha.s @@ -0,0 +1,296 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_acoshs32_ha # -- Begin function __svml_acoshs32_ha + .p2align 4 + .type __svml_acoshs32_ha,@function +__svml_acoshs32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hacosh_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vsubps {rn-sae}, %zmm2, %zmm1, %zmm3 + vsubps {rn-sae}, %zmm2, %zmm0, %zmm4 + vrsqrt14ps %zmm3, %zmm5 + vrsqrt14ps %zmm4, %zmm6 + vmovups __svml_hacosh_ha_data_internal+128(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+192(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm3, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm7, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm4, %zmm7 + vfmadd213ps {rn-sae}, %zmm9, %zmm3, %zmm10 + vrcp14ps %zmm5, %zmm3 + vfmadd213ps {rn-sae}, %zmm9, %zmm4, %zmm7 + vmulps {rn-sae}, %zmm3, %zmm10, %zmm3 + vrcp14ps %zmm6, %zmm4 + vmulps {rn-sae}, %zmm4, %zmm7, %zmm4 + vmovups __svml_hacosh_ha_data_internal+64(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vcmpnltps %zmm5, %zmm1, %k2 + vcmpnltps %zmm5, %zmm0, %k1 + vrcp14ps %zmm1, %zmm5 + vrcp14ps %zmm0, %zmm6 + vmovups __svml_hacosh_ha_data_internal+320(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+384(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+448(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm5, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm7, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm6, %zmm7 + vfmadd213ps {rn-sae}, %zmm9, %zmm5, %zmm10 + vfmadd213ps {rn-sae}, %zmm9, %zmm6, %zmm7 + vgetmantps $11, {sae}, %zmm1, %zmm5 + vgetmantps $11, {sae}, %zmm0, %zmm6 + vgetexpps {sae}, %zmm1, %zmm1 + vgetexpps {sae}, %zmm0, %zmm0 + vsubps {rn-sae}, %zmm2, %zmm5, %zmm8 + vsubps {rn-sae}, %zmm2, %zmm6, %zmm2 + vgetexpps {sae}, %zmm5, %zmm5 + vsubps {rn-sae}, %zmm5, %zmm1, %zmm1 + vgetexpps {sae}, %zmm6, %zmm5 + vsubps {rn-sae}, %zmm5, %zmm0, %zmm0 + vmovups __svml_hacosh_ha_data_internal+512(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+576(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+640(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hacosh_ha_data_internal+704(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovaps %zmm8, %zmm12 + vfmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm12 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm5 + vfmadd213ps {rn-sae}, %zmm9, %zmm8, %zmm12 + vfmadd213ps {rn-sae}, %zmm9, %zmm2, %zmm5 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm2, %zmm5 + vfmadd213ps {rn-sae}, %zmm10, %zmm8, %zmm12 + vfmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm5 + vmovups __svml_hacosh_ha_data_internal+768(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vfmadd231ps {rn-sae}, %zmm1, %zmm2, %zmm12 + vfmadd231ps {rn-sae}, %zmm0, %zmm2, %zmm5 + vmovaps %zmm12, %zmm3 {%k2} + vmovaps %zmm5, %zmm4 {%k1} + vcvtps2phx %zmm3, %ymm0 + vcvtps2phx %zmm4, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + retq +.Lfunc_end0: + .size __svml_acoshs32_ha, .Lfunc_end0-__svml_acoshs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hacosh_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1073741824 # 0x40000000 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 1016365800 # 0x3c9482e8 + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 3186343387 # 0xbdebbddb + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 1068826732 # 0x3fb5006c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 3197777948 # 0xbe9a381c + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1013159958 # 0x3c639816 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 1060196992 # 0x3f315280 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .size __svml_hacosh_ha_data_internal, 832 + + diff --git a/linux/avx512/svml_z0_asin_h_ha.s b/linux/avx512/svml_z0_asin_h_ha.s new file mode 100644 index 0000000..c9bff16 --- /dev/null +++ b/linux/avx512/svml_z0_asin_h_ha.s @@ -0,0 +1,185 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_asins32_ha # -- Begin function __svml_asins32_ha + .p2align 4 + .type __svml_asins32_ha,@function +__svml_asins32_ha: # + .cfi_startproc +# %bb.0: + kmovq %k4, -8(%rsp) # 8-byte Spill + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hasin_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm2, %zmm3 + vandps %zmm0, %zmm2, %zmm2 + vmovups __svml_hasin_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm5 + vcmpnltps %zmm4, %zmm3, %k2 + vcmpnltps %zmm4, %zmm2, %k1 + vfnmadd213ps {rn-sae}, %zmm4, %zmm3, %zmm4 + vfnmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm5 + vmulps {rn-sae}, %zmm1, %zmm1, %zmm6 + vmulps {rn-sae}, %zmm0, %zmm0, %zmm7 + vminps {sae}, %zmm4, %zmm6, %zmm6 + vminps {sae}, %zmm5, %zmm7, %zmm7 + vmovups __svml_hasin_ha_data_internal+128(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasin_ha_data_internal+192(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vblendmps %zmm8, %zmm9, %zmm10 {%k2} + vblendmps %zmm8, %zmm9, %zmm8 {%k1} + vcmpneqps %zmm9, %zmm4, %k3 + vcmpneqps %zmm9, %zmm5, %k4 + vrsqrt14ps %zmm4, %zmm9 + vrsqrt14ps %zmm5, %zmm11 + vmulps {rn-sae}, %zmm9, %zmm4, %zmm4 {%k3} + vmulps {rn-sae}, %zmm11, %zmm5, %zmm5 {%k4} + vmovups __svml_hasin_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasin_ha_data_internal+320(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasin_ha_data_internal+384(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovaps %zmm6, %zmm13 + vfmadd213ps {rn-sae}, %zmm11, %zmm9, %zmm13 + vfmadd213ps {rn-sae}, %zmm11, %zmm7, %zmm9 + vfmadd213ps {rn-sae}, %zmm12, %zmm6, %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm7, %zmm9 + vmovups __svml_hasin_ha_data_internal+448(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm3, %zmm7 + vmulps {rn-sae}, %zmm6, %zmm4, %zmm7 {%k2} + vfmadd213ps {rn-sae}, %zmm10, %zmm13, %zmm7 + vmovaps %zmm2, %zmm4 + vmulps {rn-sae}, %zmm6, %zmm5, %zmm4 {%k1} + vfmadd213ps {rn-sae}, %zmm8, %zmm9, %zmm4 + vpternlogd $150, %zmm3, %zmm1, %zmm7 # zmm7 = zmm7 ^ zmm1 ^ zmm3 + vpternlogd $150, %zmm2, %zmm0, %zmm4 # zmm4 = zmm4 ^ zmm0 ^ zmm2 + vcvtps2phx %zmm7, %ymm0 + vcvtps2phx %zmm4, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + kmovq -8(%rsp), %k4 # 8-byte Reload + retq +.Lfunc_end0: + .size __svml_asins32_ha, .Lfunc_end0-__svml_asins32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hasin_ha_data_internal: + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .zero 64 + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1036306094 # 0x3dc4c6ae + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1042839218 # 0x3e2876b2 + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 1065353483 # 0x3f80010b + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .long 3221225472 # 0xc0000000 + .size __svml_hasin_ha_data_internal, 512 + + diff --git a/linux/avx512/svml_z0_asinh_h_ha.s b/linux/avx512/svml_z0_asinh_h_ha.s new file mode 100644 index 0000000..ec572c3 --- /dev/null +++ b/linux/avx512/svml_z0_asinh_h_ha.s @@ -0,0 +1,334 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_asinhs32_ha # -- Begin function __svml_asinhs32_ha + .p2align 4 + .type __svml_asinhs32_ha,@function +__svml_asinhs32_ha: # + .cfi_startproc +# %bb.0: + vmovups %zmm16, -120(%rsp) # 64-byte Spill + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hasinh_ha_data_internal+64(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm2, %zmm4 + vandps %zmm0, %zmm2, %zmm3 + vmovups __svml_hasinh_ha_data_internal+128(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+192(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+256(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+320(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm5 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm5 + vfmadd213ps {rn-sae}, %zmm6, %zmm3, %zmm2 + vfmadd213ps {rn-sae}, %zmm7, %zmm4, %zmm5 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm2 + vfmadd213ps {rn-sae}, %zmm8, %zmm4, %zmm5 + vfmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm2 + vfmadd213ps {rn-sae}, %zmm4, %zmm4, %zmm5 + vfmadd213ps {rn-sae}, %zmm3, %zmm3, %zmm2 + vmovups __svml_hasinh_ha_data_internal(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vcmpnltps %zmm6, %zmm4, %k1 + vrcp14ps %zmm4, %zmm7 + vcmpnltps %zmm6, %zmm3, %k2 + vrcp14ps %zmm3, %zmm8 + vmovups __svml_hasinh_ha_data_internal+384(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+448(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+512(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+576(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovaps %zmm7, %zmm13 + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm13 + vfmadd213ps {rn-sae}, %zmm10, %zmm8, %zmm9 + vfmadd213ps {rn-sae}, %zmm11, %zmm7, %zmm13 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm9 + vfmadd213ps {rn-sae}, %zmm12, %zmm7, %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm8, %zmm9 + vgetmantps $11, {sae}, %zmm4, %zmm7 + vgetmantps $11, {sae}, %zmm3, %zmm8 + vgetexpps {sae}, %zmm4, %zmm10 + vgetexpps {sae}, %zmm3, %zmm11 + vsubps {rn-sae}, %zmm6, %zmm7, %zmm12 + vsubps {rn-sae}, %zmm6, %zmm8, %zmm6 + vgetexpps {sae}, %zmm7, %zmm7 + vsubps {rn-sae}, %zmm7, %zmm10, %zmm7 + vgetexpps {sae}, %zmm8, %zmm8 + vsubps {rn-sae}, %zmm8, %zmm11, %zmm8 + vmovups __svml_hasinh_ha_data_internal+640(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+704(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+768(%rip), %zmm14 # AlignMOV convert to UnAlignMOV + vmovups __svml_hasinh_ha_data_internal+832(%rip), %zmm15 # AlignMOV convert to UnAlignMOV + vmovaps %zmm12, %zmm16 + vfmadd213ps {rn-sae}, %zmm11, %zmm10, %zmm16 + vfmadd213ps {rn-sae}, %zmm11, %zmm6, %zmm10 + vfmadd213ps {rn-sae}, %zmm14, %zmm12, %zmm16 + vfmadd213ps {rn-sae}, %zmm14, %zmm6, %zmm10 + vfmadd213ps {rn-sae}, %zmm15, %zmm12, %zmm16 + vfmadd213ps {rn-sae}, %zmm15, %zmm6, %zmm10 + vfmadd213ps {rn-sae}, %zmm13, %zmm12, %zmm16 + vfmadd213ps {rn-sae}, %zmm9, %zmm6, %zmm10 + vmovups __svml_hasinh_ha_data_internal+896(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vfmadd231ps {rn-sae}, %zmm7, %zmm6, %zmm16 + vfmadd231ps {rn-sae}, %zmm8, %zmm6, %zmm10 + vmovaps %zmm16, %zmm5 {%k1} + vmovaps %zmm10, %zmm2 {%k2} + vpternlogd $150, %zmm4, %zmm1, %zmm5 # zmm5 = zmm5 ^ zmm1 ^ zmm4 + vpternlogd $150, %zmm3, %zmm0, %zmm2 # zmm2 = zmm2 ^ zmm0 ^ zmm3 + vcvtps2phx %zmm5, %ymm0 + vcvtps2phx %zmm2, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + vmovups -120(%rsp), %zmm16 # 64-byte Reload + retq +.Lfunc_end0: + .size __svml_asinhs32_ha, .Lfunc_end0-__svml_asinhs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hasinh_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 1032473325 # 0x3d8a4aed + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 3191913475 # 0xbe40bc03 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 990615122 # 0x3b0b9652 + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3064836234 # 0xb6adb08a + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 3182867575 # 0xbdb6b477 + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 1049618843 # 0x3e8fe99b + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 3144927109 # 0xbb73c785 + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 1060206271 # 0x3f3176bf + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 3192213607 # 0xbe455067 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 1051810593 # 0x3eb15b21 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 3204507554 # 0xbf00e7a2 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1065350434 # 0x3f7ff522 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .size __svml_hasinh_ha_data_internal, 960 + + diff --git a/linux/avx512/svml_z0_atan2_h_ha.s b/linux/avx512/svml_z0_atan2_h_ha.s new file mode 100644 index 0000000..576d1af --- /dev/null +++ b/linux/avx512/svml_z0_atan2_h_ha.s @@ -0,0 +1,379 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_atan2s32_ha # -- Begin function __svml_atan2s32_ha + .p2align 4 + .type __svml_atan2s32_ha,@function +__svml_atan2s32_ha: # + .cfi_startproc +# %bb.0: + vmovups __svml_hatan2_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm2, %zmm4 + vandps %zmm0, %zmm2, %zmm3 + vxorps %zmm1, %zmm4, %zmm2 + vcmpltph %zmm3, %zmm4, %k1 + vmaxph {sae}, %zmm3, %zmm4, %zmm5 + vcvtph2psx %ymm2, %zmm6 + vextractf64x4 $1, %zmm2, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vminph {sae}, %zmm4, %zmm3, %zmm4 + vcvtph2psx %ymm5, %zmm7 + vextractf64x4 $1, %zmm5, %ymm8 + vcvtph2psx %ymm8, %zmm8 + vfpclassph $159, %zmm5, %k0 # k0 = isQuietNaN(zmm5) | isPositiveZero(zmm5) | isNegativeZero(zmm5) | isPositiveInfinity(zmm5) | isNegativeInfinity(zmm5) | isSignalingNaN(zmm5) + vcvtph2psx %ymm4, %zmm5 + vdivps {rn-sae}, %zmm7, %zmm5, %zmm5 + vextractf64x4 $1, %zmm4, %ymm4 + vcvtph2psx %ymm4, %zmm4 + vdivps {rn-sae}, %zmm8, %zmm4, %zmm4 + kshiftrd $16, %k1, %k2 + vmovdqu64 __svml_hatan2_ha_data_internal+64(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vpsrad $31, %zmm6, %zmm8 + vpandd %zmm7, %zmm8, %zmm8 + vpsrad $31, %zmm2, %zmm9 + vpandd %zmm7, %zmm9, %zmm7 + vmovups __svml_hatan2_ha_data_internal+128(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm9, %zmm8 {%k1} + vmovaps %zmm9, %zmm7 {%k2} + vmovups __svml_hatan2_ha_data_internal+192(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan2_ha_data_internal+256(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan2_ha_data_internal+320(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan2_ha_data_internal+384(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan2_ha_data_internal+448(%rip), %zmm13 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan2_ha_data_internal+512(%rip), %zmm14 # AlignMOV convert to UnAlignMOV + vmovaps %zmm5, %zmm15 + vfmadd213ps {rn-sae}, %zmm11, %zmm10, %zmm15 + vfmadd213ps {rn-sae}, %zmm11, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm12, %zmm5, %zmm15 + vfmadd213ps {rn-sae}, %zmm12, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm13, %zmm5, %zmm15 + vfmadd213ps {rn-sae}, %zmm13, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm14, %zmm5, %zmm15 + vfmadd213ps {rn-sae}, %zmm14, %zmm4, %zmm10 + vxorps %zmm9, %zmm15, %zmm15 {%k1} + vxorps %zmm6, %zmm15, %zmm6 + vxorps %zmm9, %zmm10, %zmm10 {%k2} + vxorps %zmm2, %zmm10, %zmm2 + vfmadd213ps {rn-sae}, %zmm8, %zmm5, %zmm6 + vcvtps2phx %zmm6, %ymm5 + vfmadd213ps {rn-sae}, %zmm7, %zmm4, %zmm2 + vcvtps2phx %zmm2, %ymm2 + vinserti64x4 $1, %ymm2, %zmm5, %zmm2 + vpternlogq $150, %zmm3, %zmm0, %zmm2 # zmm2 = zmm2 ^ zmm0 ^ zmm3 + kortestd %k0, %k0 + jne .LBB0_1 +# %bb.2: + vmovdqa64 %zmm2, %zmm0 + retq +.LBB0_1: + pushq %rbp + movq %rsp, %rbp + pushq %rsi + pushq %rdi + andq $-64, %rsp + subq $1280, %rsp # imm = 0x500 + kmovq %k7, -24(%rbp) # 8-byte Spill + kmovq %k6, -32(%rbp) # 8-byte Spill + kmovq %k5, -40(%rbp) # 8-byte Spill + kmovq %k4, -48(%rbp) # 8-byte Spill + vmovups %zmm31, -112(%rbp) # 64-byte Spill + vmovups %zmm30, -176(%rbp) # 64-byte Spill + vmovups %zmm29, -240(%rbp) # 64-byte Spill + vmovups %zmm28, -304(%rbp) # 64-byte Spill + vmovups %zmm27, -368(%rbp) # 64-byte Spill + vmovups %zmm26, -432(%rbp) # 64-byte Spill + vmovups %zmm25, -496(%rbp) # 64-byte Spill + vmovups %zmm24, -560(%rbp) # 64-byte Spill + vmovups %zmm23, -624(%rbp) # 64-byte Spill + vmovups %zmm22, -688(%rbp) # 64-byte Spill + vmovups %zmm21, -752(%rbp) # 64-byte Spill + vmovups %zmm20, -816(%rbp) # 64-byte Spill + vmovups %zmm19, -880(%rbp) # 64-byte Spill + vmovups %zmm18, -944(%rbp) # 64-byte Spill + vmovups %zmm17, -1008(%rbp) # 64-byte Spill + vmovups %zmm16, -1072(%rbp) # 64-byte Spill + kmovd %k0, %ecx + vmovups %zmm0, 128(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm1, 64(%rsp) # AlignMOV convert to UnAlignMOV + vmovdqu64 %zmm2, (%rsp) # AlignMOV convert to UnAlignMOV + leaq 128(%rsp), %rdi + leaq 64(%rsp), %rsi + movq %rsp, %rdx + vzeroupper + callq *__svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper@GOTPCREL(%rip) + vmovups (%rsp), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups -1072(%rbp), %zmm16 # 64-byte Reload + vmovups -1008(%rbp), %zmm17 # 64-byte Reload + vmovups -944(%rbp), %zmm18 # 64-byte Reload + vmovups -880(%rbp), %zmm19 # 64-byte Reload + vmovups -816(%rbp), %zmm20 # 64-byte Reload + vmovups -752(%rbp), %zmm21 # 64-byte Reload + vmovups -688(%rbp), %zmm22 # 64-byte Reload + vmovups -624(%rbp), %zmm23 # 64-byte Reload + vmovups -560(%rbp), %zmm24 # 64-byte Reload + vmovups -496(%rbp), %zmm25 # 64-byte Reload + vmovups -432(%rbp), %zmm26 # 64-byte Reload + vmovups -368(%rbp), %zmm27 # 64-byte Reload + vmovups -304(%rbp), %zmm28 # 64-byte Reload + vmovups -240(%rbp), %zmm29 # 64-byte Reload + vmovups -176(%rbp), %zmm30 # 64-byte Reload + vmovups -112(%rbp), %zmm31 # 64-byte Reload + kmovq -48(%rbp), %k4 # 8-byte Reload + kmovq -40(%rbp), %k5 # 8-byte Reload + kmovq -32(%rbp), %k6 # 8-byte Reload + kmovq -24(%rbp), %k7 # 8-byte Reload + leaq -16(%rbp), %rsp + popq %rdi + popq %rsi + popq %rbp + vmovaps %zmm2, %zmm0 + retq +.Lfunc_end0: + .size __svml_atan2s32_ha, .Lfunc_end0-__svml_atan2s32_ha + .cfi_endproc + # -- End function + .p2align 4 # -- Begin function __svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper + .type __svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper,@function +__svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper: # + .cfi_startproc +# %bb.0: + subq $184, %rsp + vmovups %xmm15, 160(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm14, 144(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm13, 128(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm12, 112(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm11, 96(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm10, 80(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm9, 64(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm8, 48(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + xorl %eax, %eax + .p2align 4 +.LBB1_1: # =>This Inner Loop Header: Depth=1 + btl %eax, %ecx + jb .LBB1_2 +.LBB1_3: # in Loop: Header=BB1_1 Depth=1 + incq %rax + addq $2, %rdx + addq $2, %rsi + addq $2, %rdi + cmpq $32, %rax + jne .LBB1_1 + jmp .LBB1_4 +.LBB1_2: # in Loop: Header=BB1_1 Depth=1 + movq %rdi, 32(%rsp) # 8-byte Spill + movq 32(%rsp), %rdi # 8-byte Reload + movq %rsi, 24(%rsp) # 8-byte Spill + movq 24(%rsp), %rsi # 8-byte Reload + movq %rdx, 16(%rsp) # 8-byte Spill + movq 16(%rsp), %rdx # 8-byte Reload + movl %ecx, 12(%rsp) # 4-byte Spill + movq %rax, 40(%rsp) # 8-byte Spill + callq __svml_hatan2_ha_cout_rare_internal + movq 40(%rsp), %rax # 8-byte Reload + movq 32(%rsp), %rdi # 8-byte Reload + movq 24(%rsp), %rsi # 8-byte Reload + movq 16(%rsp), %rdx # 8-byte Reload + movl 12(%rsp), %ecx # 4-byte Reload + jmp .LBB1_3 +.LBB1_4: + vmovups 48(%rsp), %xmm8 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 64(%rsp), %xmm9 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 80(%rsp), %xmm10 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 96(%rsp), %xmm11 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 112(%rsp), %xmm12 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 128(%rsp), %xmm13 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 144(%rsp), %xmm14 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 160(%rsp), %xmm15 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + addq $184, %rsp + retq +.Lfunc_end1: + .size __svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper, .Lfunc_end1-__svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper + .cfi_endproc + # -- End function + .hidden __svml_hatan2_ha_cout_rare_internal + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hatan2_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .size __svml_hatan2_ha_data_internal, 576 + + diff --git a/linux/avx512/svml_z0_atan_h_ha.s b/linux/avx512/svml_z0_atan_h_ha.s new file mode 100644 index 0000000..c7d3068 --- /dev/null +++ b/linux/avx512/svml_z0_atan_h_ha.s @@ -0,0 +1,223 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_atans32_ha # -- Begin function __svml_atans32_ha + .p2align 4 + .type __svml_atans32_ha,@function +__svml_atans32_ha: # + .cfi_startproc +# %bb.0: + vpandq __svml_hatan_ha_data_internal(%rip), %zmm0, %zmm1 + vcvtph2psx %ymm1, %zmm2 + vextracti64x4 $1, %zmm1, %ymm3 + vcvtph2psx %ymm3, %zmm3 + vmovups __svml_hatan_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vcmpnleps %zmm4, %zmm2, %k2 + vcmpnleps %zmm4, %zmm3, %k1 + vmovups __svml_hatan_ha_data_internal+128(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovaps %zmm2, %zmm5 + vrcp14ps %zmm2, %zmm5 {%k2} + vmovups __svml_hatan_ha_data_internal+192(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm3, %zmm7 + vrcp14ps %zmm3, %zmm7 {%k1} + vblendmps %zmm4, %zmm6, %zmm8 {%k2} + vmovaps %zmm4, %zmm6 {%k1} + vmovups __svml_hatan_ha_data_internal+320(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan_ha_data_internal+384(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan_ha_data_internal+448(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan_ha_data_internal+512(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatan_ha_data_internal+576(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovaps %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm9, %zmm4, %zmm13 + vfmadd213ps {rn-sae}, %zmm9, %zmm7, %zmm4 + vfmadd213ps {rn-sae}, %zmm10, %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm10, %zmm7, %zmm4 + vfmadd213ps {rn-sae}, %zmm11, %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm11, %zmm7, %zmm4 + vfmadd213ps {rn-sae}, %zmm12, %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm7, %zmm4 + vmovups __svml_hatan_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vxorps %zmm5, %zmm9, %zmm2 {%k2} + vfmadd213ps {rn-sae}, %zmm8, %zmm13, %zmm2 + vxorps %zmm7, %zmm9, %zmm3 {%k1} + vfmadd213ps {rn-sae}, %zmm6, %zmm4, %zmm3 + vcvtps2phx %zmm2, %ymm2 + vcvtps2phx %zmm3, %ymm3 + vinserti64x4 $1, %ymm3, %zmm2, %zmm2 + vpternlogq $150, %zmm2, %zmm1, %zmm0 # zmm0 = zmm0 ^ zmm1 ^ zmm2 + retq +.Lfunc_end0: + .size __svml_atans32_ha, .Lfunc_end0-__svml_atans32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hatan_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .zero 64 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 3164931407 # 0xbca5054f + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 1044973981 # 0x3e49099d + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 3201019747 # 0xbecbaf63 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1005538898 # 0x3bef4e52 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .long 1065351001 # 0x3f7ff759 + .size __svml_hatan_ha_data_internal, 640 + + diff --git a/linux/avx512/svml_z0_atanh_h_ha.s b/linux/avx512/svml_z0_atanh_h_ha.s new file mode 100644 index 0000000..2d7c3df --- /dev/null +++ b/linux/avx512/svml_z0_atanh_h_ha.s @@ -0,0 +1,230 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .section .rodata,"a",@progbits + .p2align 1, 0x0 # -- Begin function __svml_atanhs32_ha +.LCPI0_0: + .short 0x8000 # -0 + .text + .globl __svml_atanhs32_ha + .p2align 4 + .type __svml_atanhs32_ha,@function +__svml_atanhs32_ha: # + .cfi_startproc +# %bb.0: + vmovdqu64 __svml_hatanh_ha_data_internal+384(%rip), %zmm1 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatanh_ha_data_internal+448(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vpbroadcastw .LCPI0_0(%rip), %zmm3 # zmm3 = [-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0,-0.0E+0] + vpternlogq $120, %zmm0, %zmm1, %zmm3 # zmm3 = zmm3 ^ (zmm1 & zmm0) + vfmadd132ph {rn-sae}, %zmm2, %zmm2, %zmm3 + vcvtph2psx %ymm3, %zmm2 + vextractf64x4 $1, %zmm3, %ymm4 + vcvtph2psx %ymm4, %zmm4 + vcvtph2psx %ymm0, %zmm5 + vextracti64x4 $1, %zmm0, %ymm6 + vcvtph2psx %ymm6, %zmm6 + vpsrld $22, %zmm2, %zmm7 + vpsrld $22, %zmm4, %zmm8 + vmovups __svml_hatanh_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatanh_ha_data_internal+320(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovaps %zmm9, %zmm11 + vpermt2ps %zmm10, %zmm7, %zmm11 + vpermt2ps %zmm10, %zmm8, %zmm9 + vmovups __svml_hatanh_ha_data_internal+128(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatanh_ha_data_internal+192(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovaps %zmm10, %zmm13 + vpermt2ps %zmm12, %zmm7, %zmm13 + vpermt2ps %zmm12, %zmm8, %zmm10 + vmovups __svml_hatanh_ha_data_internal(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovups __svml_hatanh_ha_data_internal+64(%rip), %zmm14 # AlignMOV convert to UnAlignMOV + vpermi2ps %zmm14, %zmm12, %zmm7 + vpermt2ps %zmm14, %zmm8, %zmm12 + vfmadd231ps {rn-sae}, %zmm11, %zmm2, %zmm13 + vfmadd231ps {rn-sae}, %zmm9, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm13 + vfmadd213ps {rn-sae}, %zmm12, %zmm4, %zmm10 + vcmpleph __svml_hatanh_ha_data_internal+512(%rip), %zmm3, %k1 + vrsqrtph %zmm3, %zmm2 + vpternlogq $242, %zmm0, %zmm1, %zmm2 # zmm2 = zmm2 | (zmm0 & ~zmm1) + vfmadd213ps {rn-sae}, %zmm5, %zmm5, %zmm13 + vfmadd213ps {rn-sae}, %zmm6, %zmm6, %zmm10 + vcvtps2phx %zmm13, %ymm0 + vcvtps2phx %zmm10, %ymm1 + vinserti64x4 $1, %ymm1, %zmm0, %zmm0 + vmovdqu16 %zmm2, %zmm0 {%k1} + retq +.Lfunc_end0: + .size __svml_atanhs32_ha, .Lfunc_end0-__svml_atanhs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hatanh_ha_data_internal: + .long 1055785335 # 0x3eee0177 + .long 1052071782 # 0x3eb55766 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .long 1081329115 # 0x4073c5db + .long 1080599880 # 0x4068a548 + .long 1079876107 # 0x405d9a0b + .long 1079147131 # 0x40527a7b + .long 1078423724 # 0x404770ac + .long 1077695262 # 0x403c531e + .long 1076972584 # 0x40314c28 + .long 1076245143 # 0x40263297 + .long 1075523907 # 0x401b3143 + .long 1074798477 # 0x40101f8d + .long 1074080064 # 0x40052940 + .long 1072975273 # 0x3ff44da9 + .long 1071549328 # 0x3fde8b90 + .long 1070121201 # 0x3fc8c0f1 + .long 1068715662 # 0x3fb34e8e + .long 1067315011 # 0x3f9def43 + .long 1065946313 # 0x3f890cc9 + .long 1063835479 # 0x3f68d757 + .long 1061227504 # 0x3f410bf0 + .long 1058700178 # 0x3f1a7b92 + .long 3196209665 # 0xbe824a01 + .long 3191217757 # 0xbe361e5d + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .long 3285189064 # 0xc3d001c8 + .long 3281201117 # 0xc39327dd + .long 3276774956 # 0xc34f9e2c + .long 3272788409 # 0xc312c9b9 + .long 3268340999 # 0xc2ceed07 + .long 3264357239 # 0xc2922377 + .long 3259872935 # 0xc24db6a7 + .long 3255894708 # 0xc21102b4 + .long 3251347691 # 0xc1cba0eb + .long 3247380365 # 0xc18f178d + .long 3242729579 # 0xc148206b + .long 3238783464 # 0xc10be9e8 + .long 3233966719 # 0xc0c26a7f + .long 3230061015 # 0xc086d1d7 + .long 3224989857 # 0xc03970a1 + .long 3221091896 # 0xbffdf638 + .long 3215717278 # 0xbfabf39e + .long 3211199599 # 0xbf67046f + .long 3206076977 # 0xbf18da31 + .long 3200785997 # 0xbec81e4d + .long 1024579546 # 0x3d11d7da + .long 1018621026 # 0x3cb6ec62 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .long 1193801136 # 0x4727f5b0 + .long 1185494231 # 0x46a934d7 + .long 1177017433 # 0x4627dc59 + .long 1168707840 # 0x45a91100 + .long 1160227421 # 0x4527aa5d + .long 1151912602 # 0x44a8ca9a + .long 1143425204 # 0x442748b4 + .long 1135100405 # 0x43a841f5 + .long 1126599876 # 0x43268cc4 + .long 1118256568 # 0x42a73db8 + .long 1109732235 # 0x42252b8b + .long 1101356115 # 0x41a55c53 + .long 1092791086 # 0x4122ab2e + .long 1084360835 # 0x40a20883 + .long 1075732680 # 0x401e60c8 + .long 1067223849 # 0x3f9c8b29 + .long 1058515961 # 0x3f17abf9 + .long 1049926975 # 0x3e949d3f + .long 1041191230 # 0x3e0f513e + .long 1032704109 # 0x3d8dd06d + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .short 17408 # 0x4400 + .zero 64 + .size __svml_hatanh_ha_data_internal, 576 + + diff --git a/linux/avx512/svml_z0_cbrt_h_ha.s b/linux/avx512/svml_z0_cbrt_h_ha.s new file mode 100644 index 0000000..92abc26 --- /dev/null +++ b/linux/avx512/svml_z0_cbrt_h_ha.s @@ -0,0 +1,257 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .section .rodata.cst4,"aM",@progbits,4 + .p2align 2, 0x0 # -- Begin function __svml_cbrts32_ha +.LCPI0_0: + .long 32 # 0x20 + .text + .globl __svml_cbrts32_ha + .p2align 4 + .type __svml_cbrts32_ha,@function +__svml_cbrts32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vfpclassph $30, %zmm0, %k1 # k1 = isPositiveZero(zmm0) | isNegativeZero(zmm0) | isPositiveInfinity(zmm0) | isNegativeInfinity(zmm0) + vmovdqu64 __svml_hcbrt_ha_data_internal+320(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vgetmantps $4, {sae}, %zmm1, %zmm4 + vgetmantps $4, {sae}, %zmm2, %zmm5 + vgetexpps {sae}, %zmm1, %zmm6 + vgetexpps {sae}, %zmm2, %zmm7 + vmovups __svml_hcbrt_ha_data_internal+256(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vsubps {rn-sae}, %zmm8, %zmm4, %zmm4 + vsubps {rn-sae}, %zmm8, %zmm5, %zmm5 + vmovups __svml_hcbrt_ha_data_internal+384(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vaddps {rn-sae}, %zmm8, %zmm6, %zmm6 + vaddps {rn-sae}, %zmm8, %zmm7, %zmm7 + vmovups __svml_hcbrt_ha_data_internal(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcbrt_ha_data_internal+64(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm8, %zmm10 + vpermt2ps %zmm9, %zmm6, %zmm10 + vpermt2ps %zmm9, %zmm7, %zmm8 + vmovups __svml_hcbrt_ha_data_internal+128(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcbrt_ha_data_internal+192(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovaps %zmm9, %zmm12 + vpermt2ps %zmm11, %zmm6, %zmm12 + vpermt2ps %zmm11, %zmm7, %zmm9 + vpbroadcastd .LCPI0_0(%rip), %zmm11 # zmm11 = [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32] + vptestnmd %zmm11, %zmm6, %k2 + vptestnmd %zmm11, %zmm7, %k3 + vmovaps %zmm10, %zmm12 {%k2} + vmovaps %zmm8, %zmm9 {%k3} + vpternlogd $248, %zmm1, %zmm3, %zmm12 # zmm12 = zmm12 | (zmm3 & zmm1) + vpternlogd $248, %zmm2, %zmm3, %zmm9 # zmm9 = zmm9 | (zmm3 & zmm2) + vmovups __svml_hcbrt_ha_data_internal+448(%rip), %zmm1 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcbrt_ha_data_internal+512(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcbrt_ha_data_internal+576(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcbrt_ha_data_internal+640(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm7 + vfmadd213ps {rn-sae}, %zmm2, %zmm1, %zmm7 + vfmadd213ps {rn-sae}, %zmm2, %zmm5, %zmm1 + vfmadd213ps {rn-sae}, %zmm3, %zmm4, %zmm7 + vfmadd213ps {rn-sae}, %zmm3, %zmm5, %zmm1 + vfmadd213ps {rn-sae}, %zmm6, %zmm4, %zmm7 + vfmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm1 + vmulps {rn-sae}, %zmm4, %zmm7, %zmm2 + vmulps {rn-sae}, %zmm5, %zmm1, %zmm1 + vfmadd132ps {rn-sae}, %zmm12, %zmm12, %zmm2 + vfmadd132ps {rn-sae}, %zmm9, %zmm9, %zmm1 + vcvtps2phx %zmm2, %ymm2 + vcvtps2phx %zmm1, %ymm1 + vinserti64x4 $1, %ymm1, %zmm2, %zmm1 + vmovdqu16 %zmm0, %zmm1 {%k1} + vmovdqa64 %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_cbrts32_ha, .Lfunc_end0-__svml_cbrts32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hcbrt_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1067533592 # 0x3fa14518 + .long 1070280693 # 0x3fcb2ff5 + .long 1073741824 # 0x40000000 + .long 1075922200 # 0x40214518 + .long 1078669301 # 0x404b2ff5 + .long 1082130432 # 0x40800000 + .long 1084310808 # 0x40a14518 + .long 1087057909 # 0x40cb2ff5 + .long 1090519040 # 0x41000000 + .long 1092699416 # 0x41214518 + .long 1095446517 # 0x414b2ff5 + .long 1098907648 # 0x41800000 + .long 1101088024 # 0x41a14518 + .long 1103835125 # 0x41cb2ff5 + .long 1107296256 # 0x42000000 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .zero 4 + .long 998244352 # 0x3b800000 + .long 1000424728 # 0x3ba14518 + .long 1003171829 # 0x3bcb2ff5 + .long 1006632960 # 0x3c000000 + .long 1008813336 # 0x3c214518 + .long 1011560437 # 0x3c4b2ff5 + .long 1015021568 # 0x3c800000 + .long 1017201944 # 0x3ca14518 + .long 1019949045 # 0x3ccb2ff5 + .long 1023410176 # 0x3d000000 + .long 1025590552 # 0x3d214518 + .long 1028337653 # 0x3d4b2ff5 + .long 1031798784 # 0x3d800000 + .long 1033979160 # 0x3da14518 + .long 1036726261 # 0x3dcb2ff5 + .long 1040187392 # 0x3e000000 + .long 1042367768 # 0x3e214518 + .long 1045114869 # 0x3e4b2ff5 + .long 1048576000 # 0x3e800000 + .long 1050756376 # 0x3ea14518 + .long 1053503477 # 0x3ecb2ff5 + .long 1056964608 # 0x3f000000 + .long 1059144984 # 0x3f214518 + .long 1061892085 # 0x3f4b2ff5 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 2147483648 # 0x80000000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 3160482941 # 0xbc61247d + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 1028281244 # 0x3d4a539c + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 3185532729 # 0xbddf5f39 + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .long 1051370365 # 0x3eaaa37d + .size __svml_hcbrt_ha_data_internal, 704 + + diff --git a/linux/avx512/svml_z0_cos_h_ha.s b/linux/avx512/svml_z0_cos_h_ha.s new file mode 100644 index 0000000..dac6c69 --- /dev/null +++ b/linux/avx512/svml_z0_cos_h_ha.s @@ -0,0 +1,1520 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_coss32_ha # -- Begin function __svml_coss32_ha + .p2align 4 + .type __svml_coss32_ha,@function +__svml_coss32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hcos_ha_data_internal+5568(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcos_ha_data_internal+4096(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm3, %zmm1 + vandps %zmm0, %zmm3, %zmm0 + vaddps {rn-sae}, %zmm2, %zmm1, %zmm3 + vaddps {rn-sae}, %zmm2, %zmm0, %zmm4 + vcmpeqps %zmm2, %zmm3, %k2 + vcmpeqps %zmm2, %zmm4, %k1 + vmovups __svml_hcos_ha_data_internal+5440(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcos_ha_data_internal+5504(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm2 + vpslld $31, %zmm3, %zmm4 + vpslld $31, %zmm2, %zmm6 + vsubps {rn-sae}, %zmm5, %zmm3, %zmm3 + vsubps {rn-sae}, %zmm5, %zmm2, %zmm2 + vmovups __svml_hcos_ha_data_internal+5632(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vsubps {rn-sae}, %zmm5, %zmm3, %zmm3 + vsubps {rn-sae}, %zmm5, %zmm2, %zmm2 + vmovups __svml_hcos_ha_data_internal+4800(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm5, %zmm3, %zmm1 + vfnmadd213ps {rn-sae}, %zmm0, %zmm2, %zmm5 + vmovups __svml_hcos_ha_data_internal+4864(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm0, %zmm3, %zmm1 + vfnmadd231ps {rn-sae}, %zmm0, %zmm2, %zmm5 + vmovups __svml_hcos_ha_data_internal+4928(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm3, %zmm0, %zmm1 + vfnmadd231ps {rn-sae}, %zmm0, %zmm2, %zmm5 + vmulps {rn-sae}, %zmm1, %zmm1, %zmm0 + vmulps {rn-sae}, %zmm5, %zmm5, %zmm2 + vpxord %zmm1, %zmm4, %zmm1 + vpxord %zmm5, %zmm6, %zmm3 + vmovups __svml_hcos_ha_data_internal+5376(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcos_ha_data_internal+5312(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcos_ha_data_internal+5248(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm0, %zmm7 + vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm7 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm6, %zmm0, %zmm7 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm4 + vmovups __svml_hcos_ha_data_internal+4992(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vfmadd213ps {rn-sae}, %zmm5, %zmm0, %zmm7 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm4 + vmulps {rn-sae}, %zmm1, %zmm0, %zmm0 + vmulps {rn-sae}, %zmm3, %zmm2, %zmm2 + vfmadd213ps {rn-sae}, %zmm1, %zmm7, %zmm0 + vfmadd213ps {rn-sae}, %zmm3, %zmm4, %zmm2 + vmovups __svml_hcos_ha_data_internal+5696(%rip), %zmm1 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm0 {%k2} + vmovaps %zmm1, %zmm2 {%k1} + vcvtps2phx %zmm0, %ymm0 + vcvtps2phx %zmm2, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + retq +.Lfunc_end0: + .size __svml_coss32_ha, .Lfunc_end0-__svml_coss32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hcos_ha_data_internal: + .zero 4 + .long 1065353216 # 0x3f800000 + .zero 4 + .zero 4 + .long 1004262721 # 0x3bdbd541 + .long 1065348163 # 0x3f7fec43 + .long 814009613 # 0x3084cd0d + .long 3170893824 # 0xbd000000 + .long 1012667202 # 0x3c5c1342 + .long 1065333007 # 0x3f7fb10f + .long 836655967 # 0x31de5b5f + .long 3179282432 # 0xbd800000 + .long 3157608485 # 0xbc354825 + .long 1065307757 # 0x3f7f4e6d + .long 852498564 # 0x32d01884 + .long 3179282432 # 0xbd800000 + .long 1021119272 # 0x3cdd0b28 + .long 1065272429 # 0x3f7ec46d + .long 838093129 # 0x31f44949 + .long 3187671040 # 0xbe000000 + .long 992588201 # 0x3b29b1a9 + .long 1065227044 # 0x3f7e1324 + .long 3002197507 # 0xb2f1e603 + .long 3187671040 # 0xbe000000 + .long 3165783068 # 0xbcb2041c + .long 1065171628 # 0x3f7d3aac + .long 2969000681 # 0xb0f75ae9 + .long 3187671040 # 0xbe000000 + .long 3174843017 # 0xbd3c4289 + .long 1065106216 # 0x3f7c3b28 + .long 2989610635 # 0xb231d68b + .long 3187671040 # 0xbe000000 + .long 1029761272 # 0x3d60e8f8 + .long 1065030846 # 0x3f7b14be + .long 855602635 # 0x32ff75cb + .long 3196059648 # 0xbe800000 + .long 1023221605 # 0x3cfd1f65 + .long 1064945565 # 0x3f79c79d + .long 851856985 # 0x32c64e59 + .long 3196059648 # 0xbe800000 + .long 1004930693 # 0x3be60685 + .long 1064850424 # 0x3f7853f8 + .long 2987244005 # 0xb20db9e5 + .long 3196059648 # 0xbe800000 + .long 3163089201 # 0xbc88e931 + .long 1064745479 # 0x3f76ba07 + .long 846006572 # 0x326d092c + .long 3196059648 # 0xbe800000 + .long 3173319052 # 0xbd25018c + .long 1064630795 # 0x3f74fa0b + .long 2996018466 # 0xb2939d22 + .long 3196059648 # 0xbe800000 + .long 3179441043 # 0xbd826b93 + .long 1064506439 # 0x3f731447 + .long 851742225 # 0x32c48e11 + .long 3196059648 # 0xbe800000 + .long 3182555983 # 0xbdb1f34f + .long 1064372488 # 0x3f710908 + .long 840880349 # 0x321ed0dd + .long 3196059648 # 0xbe800000 + .long 1041201069 # 0x3e0f77ad + .long 1064229022 # 0x3f6ed89e + .long 2995991516 # 0xb29333dc + .long 3204448256 # 0xbf000000 + .long 1039156139 # 0x3df043ab + .long 1064076126 # 0x3f6c835e + .long 854796500 # 0x32f328d4 + .long 3204448256 # 0xbf000000 + .long 1036128472 # 0x3dc210d8 + .long 1063913895 # 0x3f6a09a7 + .long 3001754476 # 0xb2eb236c + .long 3204448256 # 0xbf000000 + .long 1033133567 # 0x3d945dff + .long 1063742424 # 0x3f676bd8 + .long 2998678409 # 0xb2bc3389 + .long 3204448256 # 0xbf000000 + .long 1028547674 # 0x3d4e645a + .long 1063561817 # 0x3f64aa59 + .long 823789818 # 0x311a08fa + .long 3204448256 # 0xbf000000 + .long 1021989220 # 0x3cea5164 + .long 1063372184 # 0x3f61c598 + .long 3001545765 # 0xb2e7f425 + .long 3204448256 # 0xbf000000 + .long 1005106760 # 0x3be8b648 + .long 1063173637 # 0x3f5ebe05 + .long 851900755 # 0x32c6f953 + .long 3204448256 # 0xbf000000 + .long 3160870706 # 0xbc670f32 + .long 1062966298 # 0x3f5b941a + .long 841166280 # 0x32232dc8 + .long 3204448256 # 0xbf000000 + .long 3171899818 # 0xbd0f59aa + .long 1062750291 # 0x3f584853 + .long 2994560960 # 0xb27d5fc0 + .long 3204448256 # 0xbf000000 + .long 3177422237 # 0xbd639d9d + .long 1062525745 # 0x3f54db31 + .long 848357914 # 0x3290ea1a + .long 3204448256 # 0xbf000000 + .long 3181068627 # 0xbd9b4153 + .long 1062292797 # 0x3f514d3d + .long 806113028 # 0x300c4f04 + .long 3204448256 # 0xbf000000 + .long 3183738367 # 0xbdc3fdff + .long 1062051586 # 0x3f4d9f02 + .long 847147240 # 0x327e70e8 + .long 3204448256 # 0xbf000000 + .long 3186359946 # 0xbdebfe8a + .long 1061802258 # 0x3f49d112 + .long 848897600 # 0x32992640 + .long 3204448256 # 0xbf000000 + .long 3188301413 # 0xbe099e65 + .long 1061544963 # 0x3f45e403 + .long 850481524 # 0x32b15174 + .long 3204448256 # 0xbf000000 + .long 3189561687 # 0xbe1cd957 + .long 1061279856 # 0x3f41d870 + .long 851442039 # 0x32bff977 + .long 3204448256 # 0xbf000000 + .long 3190795559 # 0xbe2fad27 + .long 1061007097 # 0x3f3daef9 + .long 832220140 # 0x319aabec + .long 3204448256 # 0xbf000000 + .long 3192002283 # 0xbe4216eb + .long 1060726850 # 0x3f396842 + .long 2994798599 # 0xb2810007 + .long 3204448256 # 0xbf000000 + .long 1050015258 # 0x3e95f61a + .long 1060439283 # 0x3f3504f3 + .long 844097402 # 0x324fe77a + .long 3212836864 # 0xbf800000 + .long 1049440125 # 0x3e8d2f7d + .long 1060144571 # 0x3f3085bb + .long 2997759282 # 0xb2ae2d32 + .long 3212836864 # 0xbf800000 + .long 1048879630 # 0x3e84a20e + .long 1059842890 # 0x3f2beb4a + .long 2998350134 # 0xb2b73136 + .long 3212836864 # 0xbf800000 + .long 1048092223 # 0x3e789e3f + .long 1059534422 # 0x3f273656 + .long 2986574659 # 0xb2038343 + .long 3212836864 # 0xbf800000 + .long 1047031795 # 0x3e686ff3 + .long 1059219353 # 0x3f226799 + .long 841032635 # 0x322123bb + .long 3212836864 # 0xbf800000 + .long 1046002615 # 0x3e58bbb7 + .long 1058897873 # 0x3f1d7fd1 + .long 848430348 # 0x3292050c + .long 3212836864 # 0xbf800000 + .long 1045005303 # 0x3e4983f7 + .long 1058570176 # 0x3f187fc0 + .long 2982650867 # 0xb1c7a3f3 + .long 3212836864 # 0xbf800000 + .long 1044040460 # 0x3e3acb0c + .long 1058236458 # 0x3f13682a + .long 852349230 # 0x32cdd12e + .long 3212836864 # 0xbf800000 + .long 1043108667 # 0x3e2c933b + .long 1057896922 # 0x3f0e39da + .long 2991207143 # 0xb24a32e7 + .long 3212836864 # 0xbf800000 + .long 1042210485 # 0x3e1edeb5 + .long 1057551771 # 0x3f08f59b + .long 2998815566 # 0xb2be4b4e + .long 3212836864 # 0xbf800000 + .long 1041346455 # 0x3e11af97 + .long 1057201213 # 0x3f039c3d + .long 2992349186 # 0xb25ba002 + .long 3212836864 # 0xbf800000 + .long 1040517098 # 0x3e0507ea + .long 1056726311 # 0x3efc5d27 + .long 2978016425 # 0xb180eca9 + .long 3212836864 # 0xbf800000 + .long 1039258436 # 0x3df1d344 + .long 1056004842 # 0x3ef15aea + .long 2986287417 # 0xb1ff2139 + .long 3212836864 # 0xbf800000 + .long 1037741368 # 0x3ddaad38 + .long 1055273845 # 0x3ee63375 + .long 2983839604 # 0xb1d9c774 + .long 3212836864 # 0xbf800000 + .long 1036296515 # 0x3dc4a143 + .long 1054533760 # 0x3edae880 + .long 840832460 # 0x321e15cc + .long 3212836864 # 0xbf800000 + .long 1034924748 # 0x3dafb2cc + .long 1053785034 # 0x3ecf7bca + .long 829045603 # 0x316a3b63 + .long 3212836864 # 0xbf800000 + .long 1033626892 # 0x3d9be50c + .long 1053028117 # 0x3ec3ef15 + .long 836097324 # 0x31d5d52c + .long 3212836864 # 0xbf800000 + .long 1032403730 # 0x3d893b12 + .long 1052263466 # 0x3eb8442a + .long 2993707942 # 0xb2705ba6 + .long 3212836864 # 0xbf800000 + .long 1030713214 # 0x3d6f6f7e + .long 1051491540 # 0x3eac7cd4 + .long 2988789250 # 0xb2254e02 + .long 3212836864 # 0xbf800000 + .long 1028569994 # 0x3d4ebb8a + .long 1050712805 # 0x3ea09ae5 + .long 2990442912 # 0xb23e89a0 + .long 3212836864 # 0xbf800000 + .long 1026580309 # 0x3d305f55 + .long 1049927729 # 0x3e94a031 + .long 846027248 # 0x326d59f0 + .long 3212836864 # 0xbf800000 + .long 1024745356 # 0x3d145f8c + .long 1049136787 # 0x3e888e93 + .long 824999326 # 0x312c7d9e + .long 3212836864 # 0xbf800000 + .long 1022722308 # 0x3cf58104 + .long 1048104908 # 0x3e78cfcc + .long 2971391005 # 0xb11bd41d + .long 3212836864 # 0xbf800000 + .long 1019677780 # 0x3cc70c54 + .long 1046502419 # 0x3e605c13 + .long 833086710 # 0x31a7e4f6 + .long 3212836864 # 0xbf800000 + .long 1016948784 # 0x3c9d6830 + .long 1044891074 # 0x3e47c5c2 + .long 2967836285 # 0xb0e5967d + .long 3212836864 # 0xbf800000 + .long 1014052363 # 0x3c71360b + .long 1043271842 # 0x3e2f10a2 + .long 823224313 # 0x311167f9 + .long 3212836864 # 0xbf800000 + .long 1009865986 # 0x3c315502 + .long 1041645699 # 0x3e164083 + .long 837346836 # 0x31e8e614 + .long 3212836864 # 0xbf800000 + .long 1006005820 # 0x3bf66e3c + .long 1039839859 # 0x3dfab273 + .long 2970970319 # 0xb11568cf + .long 3212836864 # 0xbf800000 + .long 1000196465 # 0x3b9dc971 + .long 1036565814 # 0x3dc8bd36 + .long 2960495349 # 0xb07592f5 + .long 3212836864 # 0xbf800000 + .long 993104536 # 0x3b319298 + .long 1033283845 # 0x3d96a905 + .long 2975014497 # 0xb1531e61 + .long 3212836864 # 0xbf800000 + .long 983425480 # 0x3a9de1c8 + .long 1028193072 # 0x3d48fb30 + .long 2968461951 # 0xb0ef227f + .long 3212836864 # 0xbf800000 + .long 966649823 # 0x399de7df + .long 1019808432 # 0x3cc90ab0 + .long 2953169304 # 0xb005c998 + .long 3212836864 # 0xbf800000 + .zero 4 + .zero 4 + .zero 4 + .long 3212836864 # 0xbf800000 + .long 966649823 # 0x399de7df + .long 3167292080 # 0xbcc90ab0 + .long 805685656 # 0x3005c998 + .long 3212836864 # 0xbf800000 + .long 983425480 # 0x3a9de1c8 + .long 3175676720 # 0xbd48fb30 + .long 820978303 # 0x30ef227f + .long 3212836864 # 0xbf800000 + .long 993104536 # 0x3b319298 + .long 3180767493 # 0xbd96a905 + .long 827530849 # 0x31531e61 + .long 3212836864 # 0xbf800000 + .long 1000196465 # 0x3b9dc971 + .long 3184049462 # 0xbdc8bd36 + .long 813011701 # 0x307592f5 + .long 3212836864 # 0xbf800000 + .long 1006005820 # 0x3bf66e3c + .long 3187323507 # 0xbdfab273 + .long 823486671 # 0x311568cf + .long 3212836864 # 0xbf800000 + .long 1009865986 # 0x3c315502 + .long 3189129347 # 0xbe164083 + .long 2984830484 # 0xb1e8e614 + .long 3212836864 # 0xbf800000 + .long 1014052363 # 0x3c71360b + .long 3190755490 # 0xbe2f10a2 + .long 2970707961 # 0xb11167f9 + .long 3212836864 # 0xbf800000 + .long 1016948784 # 0x3c9d6830 + .long 3192374722 # 0xbe47c5c2 + .long 820352637 # 0x30e5967d + .long 3212836864 # 0xbf800000 + .long 1019677780 # 0x3cc70c54 + .long 3193986067 # 0xbe605c13 + .long 2980570358 # 0xb1a7e4f6 + .long 3212836864 # 0xbf800000 + .long 1022722308 # 0x3cf58104 + .long 3195588556 # 0xbe78cfcc + .long 823907357 # 0x311bd41d + .long 3212836864 # 0xbf800000 + .long 1024745356 # 0x3d145f8c + .long 3196620435 # 0xbe888e93 + .long 2972482974 # 0xb12c7d9e + .long 3212836864 # 0xbf800000 + .long 1026580309 # 0x3d305f55 + .long 3197411377 # 0xbe94a031 + .long 2993510896 # 0xb26d59f0 + .long 3212836864 # 0xbf800000 + .long 1028569994 # 0x3d4ebb8a + .long 3198196453 # 0xbea09ae5 + .long 842959264 # 0x323e89a0 + .long 3212836864 # 0xbf800000 + .long 1030713214 # 0x3d6f6f7e + .long 3198975188 # 0xbeac7cd4 + .long 841305602 # 0x32254e02 + .long 3212836864 # 0xbf800000 + .long 1032403730 # 0x3d893b12 + .long 3199747114 # 0xbeb8442a + .long 846224294 # 0x32705ba6 + .long 3212836864 # 0xbf800000 + .long 1033626892 # 0x3d9be50c + .long 3200511765 # 0xbec3ef15 + .long 2983580972 # 0xb1d5d52c + .long 3212836864 # 0xbf800000 + .long 1034924748 # 0x3dafb2cc + .long 3201268682 # 0xbecf7bca + .long 2976529251 # 0xb16a3b63 + .long 3212836864 # 0xbf800000 + .long 1036296515 # 0x3dc4a143 + .long 3202017408 # 0xbedae880 + .long 2988316108 # 0xb21e15cc + .long 3212836864 # 0xbf800000 + .long 1037741368 # 0x3ddaad38 + .long 3202757493 # 0xbee63375 + .long 836355956 # 0x31d9c774 + .long 3212836864 # 0xbf800000 + .long 1039258436 # 0x3df1d344 + .long 3203488490 # 0xbef15aea + .long 838803769 # 0x31ff2139 + .long 3212836864 # 0xbf800000 + .long 1040517098 # 0x3e0507ea + .long 3204209959 # 0xbefc5d27 + .long 830532777 # 0x3180eca9 + .long 3212836864 # 0xbf800000 + .long 1041346455 # 0x3e11af97 + .long 3204684861 # 0xbf039c3d + .long 844865538 # 0x325ba002 + .long 3212836864 # 0xbf800000 + .long 1042210485 # 0x3e1edeb5 + .long 3205035419 # 0xbf08f59b + .long 851331918 # 0x32be4b4e + .long 3212836864 # 0xbf800000 + .long 1043108667 # 0x3e2c933b + .long 3205380570 # 0xbf0e39da + .long 843723495 # 0x324a32e7 + .long 3212836864 # 0xbf800000 + .long 1044040460 # 0x3e3acb0c + .long 3205720106 # 0xbf13682a + .long 2999832878 # 0xb2cdd12e + .long 3212836864 # 0xbf800000 + .long 1045005303 # 0x3e4983f7 + .long 3206053824 # 0xbf187fc0 + .long 835167219 # 0x31c7a3f3 + .long 3212836864 # 0xbf800000 + .long 1046002615 # 0x3e58bbb7 + .long 3206381521 # 0xbf1d7fd1 + .long 2995913996 # 0xb292050c + .long 3212836864 # 0xbf800000 + .long 1047031795 # 0x3e686ff3 + .long 3206703001 # 0xbf226799 + .long 2988516283 # 0xb22123bb + .long 3212836864 # 0xbf800000 + .long 1048092223 # 0x3e789e3f + .long 3207018070 # 0xbf273656 + .long 839091011 # 0x32038343 + .long 3212836864 # 0xbf800000 + .long 1048879630 # 0x3e84a20e + .long 3207326538 # 0xbf2beb4a + .long 850866486 # 0x32b73136 + .long 3212836864 # 0xbf800000 + .long 1049440125 # 0x3e8d2f7d + .long 3207628219 # 0xbf3085bb + .long 850275634 # 0x32ae2d32 + .long 3212836864 # 0xbf800000 + .long 1050015258 # 0x3e95f61a + .long 3207922931 # 0xbf3504f3 + .long 2991581050 # 0xb24fe77a + .long 3212836864 # 0xbf800000 + .long 3192002283 # 0xbe4216eb + .long 3208210498 # 0xbf396842 + .long 847314951 # 0x32810007 + .long 3204448256 # 0xbf000000 + .long 3190795559 # 0xbe2fad27 + .long 3208490745 # 0xbf3daef9 + .long 2979703788 # 0xb19aabec + .long 3204448256 # 0xbf000000 + .long 3189561687 # 0xbe1cd957 + .long 3208763504 # 0xbf41d870 + .long 2998925687 # 0xb2bff977 + .long 3204448256 # 0xbf000000 + .long 3188301413 # 0xbe099e65 + .long 3209028611 # 0xbf45e403 + .long 2997965172 # 0xb2b15174 + .long 3204448256 # 0xbf000000 + .long 3186359946 # 0xbdebfe8a + .long 3209285906 # 0xbf49d112 + .long 2996381248 # 0xb2992640 + .long 3204448256 # 0xbf000000 + .long 3183738367 # 0xbdc3fdff + .long 3209535234 # 0xbf4d9f02 + .long 2994630888 # 0xb27e70e8 + .long 3204448256 # 0xbf000000 + .long 3181068627 # 0xbd9b4153 + .long 3209776445 # 0xbf514d3d + .long 2953596676 # 0xb00c4f04 + .long 3204448256 # 0xbf000000 + .long 3177422237 # 0xbd639d9d + .long 3210009393 # 0xbf54db31 + .long 2995841562 # 0xb290ea1a + .long 3204448256 # 0xbf000000 + .long 3171899818 # 0xbd0f59aa + .long 3210233939 # 0xbf584853 + .long 847077312 # 0x327d5fc0 + .long 3204448256 # 0xbf000000 + .long 3160870706 # 0xbc670f32 + .long 3210449946 # 0xbf5b941a + .long 2988649928 # 0xb2232dc8 + .long 3204448256 # 0xbf000000 + .long 1005106760 # 0x3be8b648 + .long 3210657285 # 0xbf5ebe05 + .long 2999384403 # 0xb2c6f953 + .long 3204448256 # 0xbf000000 + .long 1021989220 # 0x3cea5164 + .long 3210855832 # 0xbf61c598 + .long 854062117 # 0x32e7f425 + .long 3204448256 # 0xbf000000 + .long 1028547674 # 0x3d4e645a + .long 3211045465 # 0xbf64aa59 + .long 2971273466 # 0xb11a08fa + .long 3204448256 # 0xbf000000 + .long 1033133567 # 0x3d945dff + .long 3211226072 # 0xbf676bd8 + .long 851194761 # 0x32bc3389 + .long 3204448256 # 0xbf000000 + .long 1036128472 # 0x3dc210d8 + .long 3211397543 # 0xbf6a09a7 + .long 854270828 # 0x32eb236c + .long 3204448256 # 0xbf000000 + .long 1039156139 # 0x3df043ab + .long 3211559774 # 0xbf6c835e + .long 3002280148 # 0xb2f328d4 + .long 3204448256 # 0xbf000000 + .long 1041201069 # 0x3e0f77ad + .long 3211712670 # 0xbf6ed89e + .long 848507868 # 0x329333dc + .long 3204448256 # 0xbf000000 + .long 3182555983 # 0xbdb1f34f + .long 3211856136 # 0xbf710908 + .long 2988363997 # 0xb21ed0dd + .long 3196059648 # 0xbe800000 + .long 3179441043 # 0xbd826b93 + .long 3211990087 # 0xbf731447 + .long 2999225873 # 0xb2c48e11 + .long 3196059648 # 0xbe800000 + .long 3173319052 # 0xbd25018c + .long 3212114443 # 0xbf74fa0b + .long 848534818 # 0x32939d22 + .long 3196059648 # 0xbe800000 + .long 3163089201 # 0xbc88e931 + .long 3212229127 # 0xbf76ba07 + .long 2993490220 # 0xb26d092c + .long 3196059648 # 0xbe800000 + .long 1004930693 # 0x3be60685 + .long 3212334072 # 0xbf7853f8 + .long 839760357 # 0x320db9e5 + .long 3196059648 # 0xbe800000 + .long 1023221605 # 0x3cfd1f65 + .long 3212429213 # 0xbf79c79d + .long 2999340633 # 0xb2c64e59 + .long 3196059648 # 0xbe800000 + .long 1029761272 # 0x3d60e8f8 + .long 3212514494 # 0xbf7b14be + .long 3003086283 # 0xb2ff75cb + .long 3196059648 # 0xbe800000 + .long 3174843017 # 0xbd3c4289 + .long 3212589864 # 0xbf7c3b28 + .long 842126987 # 0x3231d68b + .long 3187671040 # 0xbe000000 + .long 3165783068 # 0xbcb2041c + .long 3212655276 # 0xbf7d3aac + .long 821517033 # 0x30f75ae9 + .long 3187671040 # 0xbe000000 + .long 992588201 # 0x3b29b1a9 + .long 3212710692 # 0xbf7e1324 + .long 854713859 # 0x32f1e603 + .long 3187671040 # 0xbe000000 + .long 1021119272 # 0x3cdd0b28 + .long 3212756077 # 0xbf7ec46d + .long 2985576777 # 0xb1f44949 + .long 3187671040 # 0xbe000000 + .long 3157608485 # 0xbc354825 + .long 3212791405 # 0xbf7f4e6d + .long 2999982212 # 0xb2d01884 + .long 3179282432 # 0xbd800000 + .long 1012667202 # 0x3c5c1342 + .long 3212816655 # 0xbf7fb10f + .long 2984139615 # 0xb1de5b5f + .long 3179282432 # 0xbd800000 + .long 1004262721 # 0x3bdbd541 + .long 3212831811 # 0xbf7fec43 + .long 2961493261 # 0xb084cd0d + .long 3170893824 # 0xbd000000 + .zero 4 + .long 3212836864 # 0xbf800000 + .zero 4 + .zero 4 + .long 3151746369 # 0xbbdbd541 + .long 3212831811 # 0xbf7fec43 + .long 2961493261 # 0xb084cd0d + .long 1023410176 # 0x3d000000 + .long 3160150850 # 0xbc5c1342 + .long 3212816655 # 0xbf7fb10f + .long 2984139615 # 0xb1de5b5f + .long 1031798784 # 0x3d800000 + .long 1010124837 # 0x3c354825 + .long 3212791405 # 0xbf7f4e6d + .long 2999982212 # 0xb2d01884 + .long 1031798784 # 0x3d800000 + .long 3168602920 # 0xbcdd0b28 + .long 3212756077 # 0xbf7ec46d + .long 2985576777 # 0xb1f44949 + .long 1040187392 # 0x3e000000 + .long 3140071849 # 0xbb29b1a9 + .long 3212710692 # 0xbf7e1324 + .long 854713859 # 0x32f1e603 + .long 1040187392 # 0x3e000000 + .long 1018299420 # 0x3cb2041c + .long 3212655276 # 0xbf7d3aac + .long 821517033 # 0x30f75ae9 + .long 1040187392 # 0x3e000000 + .long 1027359369 # 0x3d3c4289 + .long 3212589864 # 0xbf7c3b28 + .long 842126987 # 0x3231d68b + .long 1040187392 # 0x3e000000 + .long 3177244920 # 0xbd60e8f8 + .long 3212514494 # 0xbf7b14be + .long 3003086283 # 0xb2ff75cb + .long 1048576000 # 0x3e800000 + .long 3170705253 # 0xbcfd1f65 + .long 3212429213 # 0xbf79c79d + .long 2999340633 # 0xb2c64e59 + .long 1048576000 # 0x3e800000 + .long 3152414341 # 0xbbe60685 + .long 3212334072 # 0xbf7853f8 + .long 839760357 # 0x320db9e5 + .long 1048576000 # 0x3e800000 + .long 1015605553 # 0x3c88e931 + .long 3212229127 # 0xbf76ba07 + .long 2993490220 # 0xb26d092c + .long 1048576000 # 0x3e800000 + .long 1025835404 # 0x3d25018c + .long 3212114443 # 0xbf74fa0b + .long 848534818 # 0x32939d22 + .long 1048576000 # 0x3e800000 + .long 1031957395 # 0x3d826b93 + .long 3211990087 # 0xbf731447 + .long 2999225873 # 0xb2c48e11 + .long 1048576000 # 0x3e800000 + .long 1035072335 # 0x3db1f34f + .long 3211856136 # 0xbf710908 + .long 2988363997 # 0xb21ed0dd + .long 1048576000 # 0x3e800000 + .long 3188684717 # 0xbe0f77ad + .long 3211712670 # 0xbf6ed89e + .long 848507868 # 0x329333dc + .long 1056964608 # 0x3f000000 + .long 3186639787 # 0xbdf043ab + .long 3211559774 # 0xbf6c835e + .long 3002280148 # 0xb2f328d4 + .long 1056964608 # 0x3f000000 + .long 3183612120 # 0xbdc210d8 + .long 3211397543 # 0xbf6a09a7 + .long 854270828 # 0x32eb236c + .long 1056964608 # 0x3f000000 + .long 3180617215 # 0xbd945dff + .long 3211226072 # 0xbf676bd8 + .long 851194761 # 0x32bc3389 + .long 1056964608 # 0x3f000000 + .long 3176031322 # 0xbd4e645a + .long 3211045465 # 0xbf64aa59 + .long 2971273466 # 0xb11a08fa + .long 1056964608 # 0x3f000000 + .long 3169472868 # 0xbcea5164 + .long 3210855832 # 0xbf61c598 + .long 854062117 # 0x32e7f425 + .long 1056964608 # 0x3f000000 + .long 3152590408 # 0xbbe8b648 + .long 3210657285 # 0xbf5ebe05 + .long 2999384403 # 0xb2c6f953 + .long 1056964608 # 0x3f000000 + .long 1013387058 # 0x3c670f32 + .long 3210449946 # 0xbf5b941a + .long 2988649928 # 0xb2232dc8 + .long 1056964608 # 0x3f000000 + .long 1024416170 # 0x3d0f59aa + .long 3210233939 # 0xbf584853 + .long 847077312 # 0x327d5fc0 + .long 1056964608 # 0x3f000000 + .long 1029938589 # 0x3d639d9d + .long 3210009393 # 0xbf54db31 + .long 2995841562 # 0xb290ea1a + .long 1056964608 # 0x3f000000 + .long 1033584979 # 0x3d9b4153 + .long 3209776445 # 0xbf514d3d + .long 2953596676 # 0xb00c4f04 + .long 1056964608 # 0x3f000000 + .long 1036254719 # 0x3dc3fdff + .long 3209535234 # 0xbf4d9f02 + .long 2994630888 # 0xb27e70e8 + .long 1056964608 # 0x3f000000 + .long 1038876298 # 0x3debfe8a + .long 3209285906 # 0xbf49d112 + .long 2996381248 # 0xb2992640 + .long 1056964608 # 0x3f000000 + .long 1040817765 # 0x3e099e65 + .long 3209028611 # 0xbf45e403 + .long 2997965172 # 0xb2b15174 + .long 1056964608 # 0x3f000000 + .long 1042078039 # 0x3e1cd957 + .long 3208763504 # 0xbf41d870 + .long 2998925687 # 0xb2bff977 + .long 1056964608 # 0x3f000000 + .long 1043311911 # 0x3e2fad27 + .long 3208490745 # 0xbf3daef9 + .long 2979703788 # 0xb19aabec + .long 1056964608 # 0x3f000000 + .long 1044518635 # 0x3e4216eb + .long 3208210498 # 0xbf396842 + .long 847314951 # 0x32810007 + .long 1056964608 # 0x3f000000 + .long 3197498906 # 0xbe95f61a + .long 3207922931 # 0xbf3504f3 + .long 2991581050 # 0xb24fe77a + .long 1065353216 # 0x3f800000 + .long 3196923773 # 0xbe8d2f7d + .long 3207628219 # 0xbf3085bb + .long 850275634 # 0x32ae2d32 + .long 1065353216 # 0x3f800000 + .long 3196363278 # 0xbe84a20e + .long 3207326538 # 0xbf2beb4a + .long 850866486 # 0x32b73136 + .long 1065353216 # 0x3f800000 + .long 3195575871 # 0xbe789e3f + .long 3207018070 # 0xbf273656 + .long 839091011 # 0x32038343 + .long 1065353216 # 0x3f800000 + .long 3194515443 # 0xbe686ff3 + .long 3206703001 # 0xbf226799 + .long 2988516283 # 0xb22123bb + .long 1065353216 # 0x3f800000 + .long 3193486263 # 0xbe58bbb7 + .long 3206381521 # 0xbf1d7fd1 + .long 2995913996 # 0xb292050c + .long 1065353216 # 0x3f800000 + .long 3192488951 # 0xbe4983f7 + .long 3206053824 # 0xbf187fc0 + .long 835167219 # 0x31c7a3f3 + .long 1065353216 # 0x3f800000 + .long 3191524108 # 0xbe3acb0c + .long 3205720106 # 0xbf13682a + .long 2999832878 # 0xb2cdd12e + .long 1065353216 # 0x3f800000 + .long 3190592315 # 0xbe2c933b + .long 3205380570 # 0xbf0e39da + .long 843723495 # 0x324a32e7 + .long 1065353216 # 0x3f800000 + .long 3189694133 # 0xbe1edeb5 + .long 3205035419 # 0xbf08f59b + .long 851331918 # 0x32be4b4e + .long 1065353216 # 0x3f800000 + .long 3188830103 # 0xbe11af97 + .long 3204684861 # 0xbf039c3d + .long 844865538 # 0x325ba002 + .long 1065353216 # 0x3f800000 + .long 3188000746 # 0xbe0507ea + .long 3204209959 # 0xbefc5d27 + .long 830532777 # 0x3180eca9 + .long 1065353216 # 0x3f800000 + .long 3186742084 # 0xbdf1d344 + .long 3203488490 # 0xbef15aea + .long 838803769 # 0x31ff2139 + .long 1065353216 # 0x3f800000 + .long 3185225016 # 0xbddaad38 + .long 3202757493 # 0xbee63375 + .long 836355956 # 0x31d9c774 + .long 1065353216 # 0x3f800000 + .long 3183780163 # 0xbdc4a143 + .long 3202017408 # 0xbedae880 + .long 2988316108 # 0xb21e15cc + .long 1065353216 # 0x3f800000 + .long 3182408396 # 0xbdafb2cc + .long 3201268682 # 0xbecf7bca + .long 2976529251 # 0xb16a3b63 + .long 1065353216 # 0x3f800000 + .long 3181110540 # 0xbd9be50c + .long 3200511765 # 0xbec3ef15 + .long 2983580972 # 0xb1d5d52c + .long 1065353216 # 0x3f800000 + .long 3179887378 # 0xbd893b12 + .long 3199747114 # 0xbeb8442a + .long 846224294 # 0x32705ba6 + .long 1065353216 # 0x3f800000 + .long 3178196862 # 0xbd6f6f7e + .long 3198975188 # 0xbeac7cd4 + .long 841305602 # 0x32254e02 + .long 1065353216 # 0x3f800000 + .long 3176053642 # 0xbd4ebb8a + .long 3198196453 # 0xbea09ae5 + .long 842959264 # 0x323e89a0 + .long 1065353216 # 0x3f800000 + .long 3174063957 # 0xbd305f55 + .long 3197411377 # 0xbe94a031 + .long 2993510896 # 0xb26d59f0 + .long 1065353216 # 0x3f800000 + .long 3172229004 # 0xbd145f8c + .long 3196620435 # 0xbe888e93 + .long 2972482974 # 0xb12c7d9e + .long 1065353216 # 0x3f800000 + .long 3170205956 # 0xbcf58104 + .long 3195588556 # 0xbe78cfcc + .long 823907357 # 0x311bd41d + .long 1065353216 # 0x3f800000 + .long 3167161428 # 0xbcc70c54 + .long 3193986067 # 0xbe605c13 + .long 2980570358 # 0xb1a7e4f6 + .long 1065353216 # 0x3f800000 + .long 3164432432 # 0xbc9d6830 + .long 3192374722 # 0xbe47c5c2 + .long 820352637 # 0x30e5967d + .long 1065353216 # 0x3f800000 + .long 3161536011 # 0xbc71360b + .long 3190755490 # 0xbe2f10a2 + .long 2970707961 # 0xb11167f9 + .long 1065353216 # 0x3f800000 + .long 3157349634 # 0xbc315502 + .long 3189129347 # 0xbe164083 + .long 2984830484 # 0xb1e8e614 + .long 1065353216 # 0x3f800000 + .long 3153489468 # 0xbbf66e3c + .long 3187323507 # 0xbdfab273 + .long 823486671 # 0x311568cf + .long 1065353216 # 0x3f800000 + .long 3147680113 # 0xbb9dc971 + .long 3184049462 # 0xbdc8bd36 + .long 813011701 # 0x307592f5 + .long 1065353216 # 0x3f800000 + .long 3140588184 # 0xbb319298 + .long 3180767493 # 0xbd96a905 + .long 827530849 # 0x31531e61 + .long 1065353216 # 0x3f800000 + .long 3130909128 # 0xba9de1c8 + .long 3175676720 # 0xbd48fb30 + .long 820978303 # 0x30ef227f + .long 1065353216 # 0x3f800000 + .long 3114133471 # 0xb99de7df + .long 3167292080 # 0xbcc90ab0 + .long 805685656 # 0x3005c998 + .long 1065353216 # 0x3f800000 + .zero 4 + .zero 4 + .zero 4 + .long 1065353216 # 0x3f800000 + .long 3114133471 # 0xb99de7df + .long 1019808432 # 0x3cc90ab0 + .long 2953169304 # 0xb005c998 + .long 1065353216 # 0x3f800000 + .long 3130909128 # 0xba9de1c8 + .long 1028193072 # 0x3d48fb30 + .long 2968461951 # 0xb0ef227f + .long 1065353216 # 0x3f800000 + .long 3140588184 # 0xbb319298 + .long 1033283845 # 0x3d96a905 + .long 2975014497 # 0xb1531e61 + .long 1065353216 # 0x3f800000 + .long 3147680113 # 0xbb9dc971 + .long 1036565814 # 0x3dc8bd36 + .long 2960495349 # 0xb07592f5 + .long 1065353216 # 0x3f800000 + .long 3153489468 # 0xbbf66e3c + .long 1039839859 # 0x3dfab273 + .long 2970970319 # 0xb11568cf + .long 1065353216 # 0x3f800000 + .long 3157349634 # 0xbc315502 + .long 1041645699 # 0x3e164083 + .long 837346836 # 0x31e8e614 + .long 1065353216 # 0x3f800000 + .long 3161536011 # 0xbc71360b + .long 1043271842 # 0x3e2f10a2 + .long 823224313 # 0x311167f9 + .long 1065353216 # 0x3f800000 + .long 3164432432 # 0xbc9d6830 + .long 1044891074 # 0x3e47c5c2 + .long 2967836285 # 0xb0e5967d + .long 1065353216 # 0x3f800000 + .long 3167161428 # 0xbcc70c54 + .long 1046502419 # 0x3e605c13 + .long 833086710 # 0x31a7e4f6 + .long 1065353216 # 0x3f800000 + .long 3170205956 # 0xbcf58104 + .long 1048104908 # 0x3e78cfcc + .long 2971391005 # 0xb11bd41d + .long 1065353216 # 0x3f800000 + .long 3172229004 # 0xbd145f8c + .long 1049136787 # 0x3e888e93 + .long 824999326 # 0x312c7d9e + .long 1065353216 # 0x3f800000 + .long 3174063957 # 0xbd305f55 + .long 1049927729 # 0x3e94a031 + .long 846027248 # 0x326d59f0 + .long 1065353216 # 0x3f800000 + .long 3176053642 # 0xbd4ebb8a + .long 1050712805 # 0x3ea09ae5 + .long 2990442912 # 0xb23e89a0 + .long 1065353216 # 0x3f800000 + .long 3178196862 # 0xbd6f6f7e + .long 1051491540 # 0x3eac7cd4 + .long 2988789250 # 0xb2254e02 + .long 1065353216 # 0x3f800000 + .long 3179887378 # 0xbd893b12 + .long 1052263466 # 0x3eb8442a + .long 2993707942 # 0xb2705ba6 + .long 1065353216 # 0x3f800000 + .long 3181110540 # 0xbd9be50c + .long 1053028117 # 0x3ec3ef15 + .long 836097324 # 0x31d5d52c + .long 1065353216 # 0x3f800000 + .long 3182408396 # 0xbdafb2cc + .long 1053785034 # 0x3ecf7bca + .long 829045603 # 0x316a3b63 + .long 1065353216 # 0x3f800000 + .long 3183780163 # 0xbdc4a143 + .long 1054533760 # 0x3edae880 + .long 840832460 # 0x321e15cc + .long 1065353216 # 0x3f800000 + .long 3185225016 # 0xbddaad38 + .long 1055273845 # 0x3ee63375 + .long 2983839604 # 0xb1d9c774 + .long 1065353216 # 0x3f800000 + .long 3186742084 # 0xbdf1d344 + .long 1056004842 # 0x3ef15aea + .long 2986287417 # 0xb1ff2139 + .long 1065353216 # 0x3f800000 + .long 3188000746 # 0xbe0507ea + .long 1056726311 # 0x3efc5d27 + .long 2978016425 # 0xb180eca9 + .long 1065353216 # 0x3f800000 + .long 3188830103 # 0xbe11af97 + .long 1057201213 # 0x3f039c3d + .long 2992349186 # 0xb25ba002 + .long 1065353216 # 0x3f800000 + .long 3189694133 # 0xbe1edeb5 + .long 1057551771 # 0x3f08f59b + .long 2998815566 # 0xb2be4b4e + .long 1065353216 # 0x3f800000 + .long 3190592315 # 0xbe2c933b + .long 1057896922 # 0x3f0e39da + .long 2991207143 # 0xb24a32e7 + .long 1065353216 # 0x3f800000 + .long 3191524108 # 0xbe3acb0c + .long 1058236458 # 0x3f13682a + .long 852349230 # 0x32cdd12e + .long 1065353216 # 0x3f800000 + .long 3192488951 # 0xbe4983f7 + .long 1058570176 # 0x3f187fc0 + .long 2982650867 # 0xb1c7a3f3 + .long 1065353216 # 0x3f800000 + .long 3193486263 # 0xbe58bbb7 + .long 1058897873 # 0x3f1d7fd1 + .long 848430348 # 0x3292050c + .long 1065353216 # 0x3f800000 + .long 3194515443 # 0xbe686ff3 + .long 1059219353 # 0x3f226799 + .long 841032635 # 0x322123bb + .long 1065353216 # 0x3f800000 + .long 3195575871 # 0xbe789e3f + .long 1059534422 # 0x3f273656 + .long 2986574659 # 0xb2038343 + .long 1065353216 # 0x3f800000 + .long 3196363278 # 0xbe84a20e + .long 1059842890 # 0x3f2beb4a + .long 2998350134 # 0xb2b73136 + .long 1065353216 # 0x3f800000 + .long 3196923773 # 0xbe8d2f7d + .long 1060144571 # 0x3f3085bb + .long 2997759282 # 0xb2ae2d32 + .long 1065353216 # 0x3f800000 + .long 3197498906 # 0xbe95f61a + .long 1060439283 # 0x3f3504f3 + .long 844097402 # 0x324fe77a + .long 1065353216 # 0x3f800000 + .long 1044518635 # 0x3e4216eb + .long 1060726850 # 0x3f396842 + .long 2994798599 # 0xb2810007 + .long 1056964608 # 0x3f000000 + .long 1043311911 # 0x3e2fad27 + .long 1061007097 # 0x3f3daef9 + .long 832220140 # 0x319aabec + .long 1056964608 # 0x3f000000 + .long 1042078039 # 0x3e1cd957 + .long 1061279856 # 0x3f41d870 + .long 851442039 # 0x32bff977 + .long 1056964608 # 0x3f000000 + .long 1040817765 # 0x3e099e65 + .long 1061544963 # 0x3f45e403 + .long 850481524 # 0x32b15174 + .long 1056964608 # 0x3f000000 + .long 1038876298 # 0x3debfe8a + .long 1061802258 # 0x3f49d112 + .long 848897600 # 0x32992640 + .long 1056964608 # 0x3f000000 + .long 1036254719 # 0x3dc3fdff + .long 1062051586 # 0x3f4d9f02 + .long 847147240 # 0x327e70e8 + .long 1056964608 # 0x3f000000 + .long 1033584979 # 0x3d9b4153 + .long 1062292797 # 0x3f514d3d + .long 806113028 # 0x300c4f04 + .long 1056964608 # 0x3f000000 + .long 1029938589 # 0x3d639d9d + .long 1062525745 # 0x3f54db31 + .long 848357914 # 0x3290ea1a + .long 1056964608 # 0x3f000000 + .long 1024416170 # 0x3d0f59aa + .long 1062750291 # 0x3f584853 + .long 2994560960 # 0xb27d5fc0 + .long 1056964608 # 0x3f000000 + .long 1013387058 # 0x3c670f32 + .long 1062966298 # 0x3f5b941a + .long 841166280 # 0x32232dc8 + .long 1056964608 # 0x3f000000 + .long 3152590408 # 0xbbe8b648 + .long 1063173637 # 0x3f5ebe05 + .long 851900755 # 0x32c6f953 + .long 1056964608 # 0x3f000000 + .long 3169472868 # 0xbcea5164 + .long 1063372184 # 0x3f61c598 + .long 3001545765 # 0xb2e7f425 + .long 1056964608 # 0x3f000000 + .long 3176031322 # 0xbd4e645a + .long 1063561817 # 0x3f64aa59 + .long 823789818 # 0x311a08fa + .long 1056964608 # 0x3f000000 + .long 3180617215 # 0xbd945dff + .long 1063742424 # 0x3f676bd8 + .long 2998678409 # 0xb2bc3389 + .long 1056964608 # 0x3f000000 + .long 3183612120 # 0xbdc210d8 + .long 1063913895 # 0x3f6a09a7 + .long 3001754476 # 0xb2eb236c + .long 1056964608 # 0x3f000000 + .long 3186639787 # 0xbdf043ab + .long 1064076126 # 0x3f6c835e + .long 854796500 # 0x32f328d4 + .long 1056964608 # 0x3f000000 + .long 3188684717 # 0xbe0f77ad + .long 1064229022 # 0x3f6ed89e + .long 2995991516 # 0xb29333dc + .long 1056964608 # 0x3f000000 + .long 1035072335 # 0x3db1f34f + .long 1064372488 # 0x3f710908 + .long 840880349 # 0x321ed0dd + .long 1048576000 # 0x3e800000 + .long 1031957395 # 0x3d826b93 + .long 1064506439 # 0x3f731447 + .long 851742225 # 0x32c48e11 + .long 1048576000 # 0x3e800000 + .long 1025835404 # 0x3d25018c + .long 1064630795 # 0x3f74fa0b + .long 2996018466 # 0xb2939d22 + .long 1048576000 # 0x3e800000 + .long 1015605553 # 0x3c88e931 + .long 1064745479 # 0x3f76ba07 + .long 846006572 # 0x326d092c + .long 1048576000 # 0x3e800000 + .long 3152414341 # 0xbbe60685 + .long 1064850424 # 0x3f7853f8 + .long 2987244005 # 0xb20db9e5 + .long 1048576000 # 0x3e800000 + .long 3170705253 # 0xbcfd1f65 + .long 1064945565 # 0x3f79c79d + .long 851856985 # 0x32c64e59 + .long 1048576000 # 0x3e800000 + .long 3177244920 # 0xbd60e8f8 + .long 1065030846 # 0x3f7b14be + .long 855602635 # 0x32ff75cb + .long 1048576000 # 0x3e800000 + .long 1027359369 # 0x3d3c4289 + .long 1065106216 # 0x3f7c3b28 + .long 2989610635 # 0xb231d68b + .long 1040187392 # 0x3e000000 + .long 1018299420 # 0x3cb2041c + .long 1065171628 # 0x3f7d3aac + .long 2969000681 # 0xb0f75ae9 + .long 1040187392 # 0x3e000000 + .long 3140071849 # 0xbb29b1a9 + .long 1065227044 # 0x3f7e1324 + .long 3002197507 # 0xb2f1e603 + .long 1040187392 # 0x3e000000 + .long 3168602920 # 0xbcdd0b28 + .long 1065272429 # 0x3f7ec46d + .long 838093129 # 0x31f44949 + .long 1040187392 # 0x3e000000 + .long 1010124837 # 0x3c354825 + .long 1065307757 # 0x3f7f4e6d + .long 852498564 # 0x32d01884 + .long 1031798784 # 0x3d800000 + .long 3160150850 # 0xbc5c1342 + .long 1065333007 # 0x3f7fb10f + .long 836655967 # 0x31de5b5f + .long 1031798784 # 0x3d800000 + .long 3151746369 # 0xbbdbd541 + .long 1065348163 # 0x3f7fec43 + .long 814009613 # 0x3084cd0d + .long 1023410176 # 0x3d000000 + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 1007191908 # 0x3c088764 + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 3109009103 # 0xb94fb6cf + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 909034293 # 0x362ec335 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1070141403 # 0x3fc90fdb + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .size __svml_hcos_ha_data_internal, 5760 + + diff --git a/linux/avx512/svml_z0_cosh_h_ha.s b/linux/avx512/svml_z0_cosh_h_ha.s new file mode 100644 index 0000000..877b171 --- /dev/null +++ b/linux/avx512/svml_z0_cosh_h_ha.s @@ -0,0 +1,223 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_coshs32_ha # -- Begin function __svml_coshs32_ha + .p2align 4 + .type __svml_coshs32_ha,@function +__svml_coshs32_ha: # + .cfi_startproc +# %bb.0: + vandps __svml_hcosh_ha_data_internal(%rip), %zmm0, %zmm0 + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hcosh_ha_data_internal+64(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcosh_ha_data_internal+128(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovaps %zmm2, %zmm4 + vfmadd213ps {rz-sae}, %zmm3, %zmm1, %zmm4 + vfmadd213ps {rz-sae}, %zmm3, %zmm0, %zmm2 + vsubps {rn-sae}, %zmm3, %zmm4, %zmm4 + vsubps {rn-sae}, %zmm3, %zmm2, %zmm2 + vmovups __svml_hcosh_ha_data_internal+192(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm3, %zmm4, %zmm1 + vfnmadd213ps {rn-sae}, %zmm0, %zmm2, %zmm3 + vmovups __svml_hcosh_ha_data_internal+256(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcosh_ha_data_internal+320(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcosh_ha_data_internal+384(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hcosh_ha_data_internal+448(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovaps %zmm0, %zmm8 + vfmadd213ps {rn-sae}, %zmm5, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm6, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm0 + vsubps {rn-sae}, %zmm7, %zmm4, %zmm1 + vscalefps {rn-sae}, %zmm1, %zmm8, %zmm1 + vsubps {rn-sae}, %zmm7, %zmm2, %zmm2 + vrcp14ps %zmm1, %zmm3 + vscalefps {rn-sae}, %zmm2, %zmm0, %zmm0 + vrcp14ps %zmm0, %zmm2 + vmovups __svml_hcosh_ha_data_internal+512(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vfmadd213ps {rn-sae}, %zmm1, %zmm4, %zmm3 + vfmadd213ps {rn-sae}, %zmm0, %zmm4, %zmm2 + vcvtps2phx %zmm3, %ymm0 + vcvtps2phx %zmm2, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + retq +.Lfunc_end0: + .size __svml_coshs32_ha, .Lfunc_end0-__svml_coshs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hcosh_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1029893932 # 0x3d62ef2c + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1042559998 # 0x3e2433fe + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1056979802 # 0x3f003b5a + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1065352877 # 0x3f7ffead + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .size __svml_hcosh_ha_data_internal, 576 + + diff --git a/linux/avx512/svml_z0_exp10_h_ha.s b/linux/avx512/svml_z0_exp10_h_ha.s new file mode 100644 index 0000000..bb95d19 --- /dev/null +++ b/linux/avx512/svml_z0_exp10_h_ha.s @@ -0,0 +1,457 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_exp10s32_ha # -- Begin function __svml_exp10s32_ha + .p2align 4 + .type __svml_exp10s32_ha,@function +__svml_exp10s32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hexp10_ha_data_internal_avx512(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp10_ha_data_internal_avx512+64(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm4 + vfmadd213ps {rn-sae}, %zmm3, %zmm2, %zmm4 + vfmadd213ps {rn-sae}, %zmm3, %zmm0, %zmm2 + vsubps {rn-sae}, %zmm3, %zmm4, %zmm4 + vsubps {rn-sae}, %zmm3, %zmm2, %zmm2 + vmovups __svml_hexp10_ha_data_internal_avx512+128(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm3, %zmm4, %zmm1 + vfnmadd213ps {rn-sae}, %zmm0, %zmm2, %zmm3 + vmovups __svml_hexp10_ha_data_internal_avx512+256(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp10_ha_data_internal_avx512+320(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp10_ha_data_internal_avx512+384(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp10_ha_data_internal_avx512+448(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp10_ha_data_internal_avx512+512(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm9 + vfmadd213ps {rn-sae}, %zmm5, %zmm0, %zmm9 + vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm9 + vfmadd213ps {rn-sae}, %zmm6, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm9 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm0 + vfmadd213ps {rn-sae}, %zmm8, %zmm1, %zmm9 + vfmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm0 + vscalefps {rn-sae}, %zmm4, %zmm9, %zmm1 + vscalefps {rn-sae}, %zmm2, %zmm0, %zmm0 + vcvtps2phx %zmm1, %ymm1 + vcvtps2phx %zmm0, %ymm0 + vinsertf64x4 $1, %ymm0, %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_exp10s32_ha, .Lfunc_end0-__svml_exp10s32_ha + .cfi_endproc + # -- End function + .hidden __svml_hexp10_ha_data_internal_avx512 + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hexp10_ha_data_internal_avx512: + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1067068325 # 0x3f9a2ba5 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1074146614 # 0x40062d36 + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1076466220 # 0x4029922c + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1075005060 # 0x40134684 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 51200 # 0xc800 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 17920 # 0x4600 + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .short 17061 # 0x42a5 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1079286392 # 0x40549a78 + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .size __svml_hexp10_ha_data_internal_avx512, 1280 + + diff --git a/linux/avx512/svml_z0_exp2_h_ha.s b/linux/avx512/svml_z0_exp2_h_ha.s new file mode 100644 index 0000000..3524ed0 --- /dev/null +++ b/linux/avx512/svml_z0_exp2_h_ha.s @@ -0,0 +1,428 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_exp2s32_ha # -- Begin function __svml_exp2s32_ha + .p2align 4 + .type __svml_exp2s32_ha,@function +__svml_exp2s32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vreduceps $9, {sae}, %zmm1, %zmm1 + vreduceps $9, {sae}, %zmm2, %zmm2 + vmovups __svml_hexp2_ha_data_internal(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp2_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp2_ha_data_internal+128(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp2_ha_data_internal+192(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm7 + vfmadd213ps {rn-sae}, %zmm4, %zmm3, %zmm7 + vfmadd213ps {rn-sae}, %zmm4, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm5, %zmm1, %zmm7 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm7 + vcvtps2phx %zmm7, %ymm1 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm3 + vcvtps2phx %zmm3, %ymm2 + vinsertf64x4 $1, %ymm2, %zmm1, %zmm1 + vscalefph {rn-sae}, %zmm0, %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_exp2s32_ha, .Lfunc_end0-__svml_exp2s32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hexp2_ha_data_internal: + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 52864 # 0xce80 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 19456 # 0x4c00 + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 5526 # 0x1596 + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 8459 # 0x210b + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 11034 # 0x2b1a + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 13231 # 0x33af + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 35548 # 0x8adc + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 14732 # 0x398c + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .size __svml_hexp2_ha_data_internal, 896 + + diff --git a/linux/avx512/svml_z0_exp_h_ha.s b/linux/avx512/svml_z0_exp_h_ha.s new file mode 100644 index 0000000..5f3e94d --- /dev/null +++ b/linux/avx512/svml_z0_exp_h_ha.s @@ -0,0 +1,755 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_exps32_ha # -- Begin function __svml_exps32_ha + .p2align 4 + .type __svml_exps32_ha,@function +__svml_exps32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vmovups __svml_hexp_ha_data_internal+256(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp_ha_data_internal+320(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm5 + vfmadd213ps {rz-sae}, %zmm4, %zmm3, %zmm5 + vfmadd213ps {rz-sae}, %zmm4, %zmm2, %zmm3 + vmovups __svml_hexp_ha_data_internal+896(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vcmpneqps %zmm6, %zmm1, %k2 + vcmpneqps %zmm6, %zmm2, %k1 + vsubps {rn-sae}, %zmm4, %zmm5, %zmm6 + vsubps {rn-sae}, %zmm4, %zmm3, %zmm4 + vmovups __svml_hexp_ha_data_internal(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp_ha_data_internal+64(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovaps %zmm7, %zmm9 + vpermt2ps %zmm8, %zmm5, %zmm9 + vpermt2ps %zmm8, %zmm3, %zmm7 + vpsrld $5, %zmm5, %zmm5 + vpsrld $5, %zmm3, %zmm3 + vmovups __svml_hexp_ha_data_internal+128(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp_ha_data_internal+192(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vpermi2ps %zmm10, %zmm8, %zmm5 + vpermi2ps %zmm10, %zmm8, %zmm3 + vmovups __svml_hexp_ha_data_internal+384(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp_ha_data_internal+448(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovaps %zmm8, %zmm11 + vfnmadd213ps {rn-sae}, %zmm1, %zmm6, %zmm11 + vfnmadd213ps {rn-sae}, %zmm2, %zmm4, %zmm8 + vfnmadd231ps {rn-sae}, %zmm10, %zmm6, %zmm11 + vfnmadd231ps {rn-sae}, %zmm10, %zmm4, %zmm8 + vmovups __svml_hexp_ha_data_internal+512(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vrangeps $2, {sae}, %zmm10, %zmm11, %zmm11 + vrangeps $2, {sae}, %zmm10, %zmm8, %zmm8 + vmulps {rn-sae}, %zmm9, %zmm5, %zmm5 {%k2} + vmulps {rn-sae}, %zmm7, %zmm3, %zmm3 {%k1} + vmovups __svml_hexp_ha_data_internal+576(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexp_ha_data_internal+640(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vandps %zmm2, %zmm7, %zmm2 + vandps %zmm1, %zmm7, %zmm1 + vcmpleps %zmm1, %zmm9, %k0 + vcmpleps %zmm2, %zmm9, %k1 + vfmadd231ps {rn-sae}, %zmm5, %zmm11, %zmm5 + vfmadd231ps {rn-sae}, %zmm3, %zmm8, %zmm3 + vscalefps {rn-sae}, %zmm6, %zmm5, %zmm1 + vscalefps {rn-sae}, %zmm4, %zmm3, %zmm2 + vcvtps2phx %zmm1, %ymm1 + vcvtps2phx %zmm2, %ymm2 + vinsertf64x4 $1, %ymm2, %zmm1, %zmm1 + kortestw %k1, %k0 + jne .LBB0_1 +# %bb.2: + vmovaps %zmm1, %zmm0 + retq +.LBB0_1: + pushq %rbp + movq %rsp, %rbp + pushq %rsi + pushq %rdi + andq $-64, %rsp + subq $1216, %rsp # imm = 0x4C0 + kmovq %k7, -24(%rbp) # 8-byte Spill + kmovq %k6, -32(%rbp) # 8-byte Spill + kmovq %k5, -40(%rbp) # 8-byte Spill + kmovq %k4, -48(%rbp) # 8-byte Spill + vmovups %zmm31, -112(%rbp) # 64-byte Spill + vmovups %zmm30, -176(%rbp) # 64-byte Spill + vmovups %zmm29, -240(%rbp) # 64-byte Spill + vmovups %zmm28, -304(%rbp) # 64-byte Spill + vmovups %zmm27, -368(%rbp) # 64-byte Spill + vmovups %zmm26, -432(%rbp) # 64-byte Spill + vmovups %zmm25, -496(%rbp) # 64-byte Spill + vmovups %zmm24, -560(%rbp) # 64-byte Spill + vmovups %zmm23, -624(%rbp) # 64-byte Spill + vmovups %zmm22, -688(%rbp) # 64-byte Spill + vmovups %zmm21, -752(%rbp) # 64-byte Spill + vmovups %zmm20, -816(%rbp) # 64-byte Spill + vmovups %zmm19, -880(%rbp) # 64-byte Spill + vmovups %zmm18, -944(%rbp) # 64-byte Spill + vmovups %zmm17, -1008(%rbp) # 64-byte Spill + vmovups %zmm16, -1072(%rbp) # 64-byte Spill + kunpckwd %k0, %k1, %k0 + kmovd %k0, %edx + vmovups %zmm0, 64(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm1, (%rsp) # AlignMOV convert to UnAlignMOV + leaq 64(%rsp), %rdi + movq %rsp, %rsi + vzeroupper + callq *__svml_z0__svml_hexp_ha_cout_rare_internal_wrapper@GOTPCREL(%rip) + vmovups (%rsp), %zmm1 # AlignMOV convert to UnAlignMOV + vmovups -1072(%rbp), %zmm16 # 64-byte Reload + vmovups -1008(%rbp), %zmm17 # 64-byte Reload + vmovups -944(%rbp), %zmm18 # 64-byte Reload + vmovups -880(%rbp), %zmm19 # 64-byte Reload + vmovups -816(%rbp), %zmm20 # 64-byte Reload + vmovups -752(%rbp), %zmm21 # 64-byte Reload + vmovups -688(%rbp), %zmm22 # 64-byte Reload + vmovups -624(%rbp), %zmm23 # 64-byte Reload + vmovups -560(%rbp), %zmm24 # 64-byte Reload + vmovups -496(%rbp), %zmm25 # 64-byte Reload + vmovups -432(%rbp), %zmm26 # 64-byte Reload + vmovups -368(%rbp), %zmm27 # 64-byte Reload + vmovups -304(%rbp), %zmm28 # 64-byte Reload + vmovups -240(%rbp), %zmm29 # 64-byte Reload + vmovups -176(%rbp), %zmm30 # 64-byte Reload + vmovups -112(%rbp), %zmm31 # 64-byte Reload + kmovq -48(%rbp), %k4 # 8-byte Reload + kmovq -40(%rbp), %k5 # 8-byte Reload + kmovq -32(%rbp), %k6 # 8-byte Reload + kmovq -24(%rbp), %k7 # 8-byte Reload + leaq -16(%rbp), %rsp + popq %rdi + popq %rsi + popq %rbp + vmovaps %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_exps32_ha, .Lfunc_end0-__svml_exps32_ha + .cfi_endproc + # -- End function + .p2align 4 # -- Begin function __svml_z0__svml_hexp_ha_cout_rare_internal_wrapper + .type __svml_z0__svml_hexp_ha_cout_rare_internal_wrapper,@function +__svml_z0__svml_hexp_ha_cout_rare_internal_wrapper: # + .cfi_startproc +# %bb.0: + subq $168, %rsp + vmovups %xmm15, 144(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm14, 128(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm13, 112(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm12, 96(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm11, 80(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm10, 64(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm9, 48(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm8, 32(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + xorl %eax, %eax + .p2align 4 +.LBB1_1: # =>This Inner Loop Header: Depth=1 + btl %eax, %edx + jb .LBB1_2 +.LBB1_3: # in Loop: Header=BB1_1 Depth=1 + incq %rax + addq $2, %rsi + addq $2, %rdi + cmpq $32, %rax + jne .LBB1_1 + jmp .LBB1_4 +.LBB1_2: # in Loop: Header=BB1_1 Depth=1 + movq %rdi, 16(%rsp) # 8-byte Spill + movq 16(%rsp), %rdi # 8-byte Reload + movq %rsi, 8(%rsp) # 8-byte Spill + movq 8(%rsp), %rsi # 8-byte Reload + movl %edx, 4(%rsp) # 4-byte Spill + movq %rax, 24(%rsp) # 8-byte Spill + callq __svml_hexp_ha_cout_rare_internal + movq 24(%rsp), %rax # 8-byte Reload + movq 16(%rsp), %rdi # 8-byte Reload + movq 8(%rsp), %rsi # 8-byte Reload + movl 4(%rsp), %edx # 4-byte Reload + jmp .LBB1_3 +.LBB1_4: + vmovups 32(%rsp), %xmm8 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 48(%rsp), %xmm9 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 64(%rsp), %xmm10 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 80(%rsp), %xmm11 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 96(%rsp), %xmm12 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 112(%rsp), %xmm13 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 128(%rsp), %xmm14 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 144(%rsp), %xmm15 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + addq $168, %rsp + retq +.Lfunc_end1: + .size __svml_z0__svml_hexp_ha_cout_rare_internal_wrapper, .Lfunc_end1-__svml_z0__svml_hexp_ha_cout_rare_internal_wrapper + .cfi_endproc + # -- End function + .hidden __svml_hexp_ha_cout_rare_internal + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hexp_ha_data_internal: + .long 1065353217 # 0x3f800001 + .long 1065358897 # 0x3f801631 + .long 1065364581 # 0x3f802c65 + .long 1065370269 # 0x3f80429d + .long 1065375961 # 0x3f8058d9 + .long 1065381656 # 0x3f806f18 + .long 1065387356 # 0x3f80855c + .long 1065393059 # 0x3f809ba3 + .long 1065398766 # 0x3f80b1ee + .long 1065404477 # 0x3f80c83d + .long 1065410192 # 0x3f80de90 + .long 1065415911 # 0x3f80f4e7 + .long 1065421634 # 0x3f810b42 + .long 1065427360 # 0x3f8121a0 + .long 1065433091 # 0x3f813803 + .long 1065438825 # 0x3f814e69 + .long 1065444563 # 0x3f8164d3 + .long 1065450305 # 0x3f817b41 + .long 1065456051 # 0x3f8191b3 + .long 1065461801 # 0x3f81a829 + .long 1065467554 # 0x3f81bea2 + .long 1065473312 # 0x3f81d520 + .long 1065479074 # 0x3f81eba2 + .long 1065484839 # 0x3f820227 + .long 1065490608 # 0x3f8218b0 + .long 1065496381 # 0x3f822f3d + .long 1065502159 # 0x3f8245cf + .long 1065507940 # 0x3f825c64 + .long 1065513725 # 0x3f8272fd + .long 1065519513 # 0x3f828999 + .long 1065525306 # 0x3f82a03a + .long 1065531103 # 0x3f82b6df + .long 1065353216 # 0x3f800000 + .long 1065536903 # 0x3f82cd87 + .long 1065724611 # 0x3f85aac3 + .long 1065916431 # 0x3f88980f + .long 1066112450 # 0x3f8b95c2 + .long 1066312762 # 0x3f8ea43a + .long 1066517459 # 0x3f91c3d3 + .long 1066726640 # 0x3f94f4f0 + .long 1066940400 # 0x3f9837f0 + .long 1067158842 # 0x3f9b8d3a + .long 1067382066 # 0x3f9ef532 + .long 1067610179 # 0x3fa27043 + .long 1067843287 # 0x3fa5fed7 + .long 1068081499 # 0x3fa9a15b + .long 1068324927 # 0x3fad583f + .long 1068573686 # 0x3fb123f6 + .long 1068827891 # 0x3fb504f3 + .long 1069087663 # 0x3fb8fbaf + .long 1069353124 # 0x3fbd08a4 + .long 1069624397 # 0x3fc12c4d + .long 1069901610 # 0x3fc5672a + .long 1070184894 # 0x3fc9b9be + .long 1070474380 # 0x3fce248c + .long 1070770206 # 0x3fd2a81e + .long 1071072509 # 0x3fd744fd + .long 1071381432 # 0x3fdbfbb8 + .long 1071697119 # 0x3fe0ccdf + .long 1072019719 # 0x3fe5b907 + .long 1072349383 # 0x3feac0c7 + .long 1072686266 # 0x3fefe4ba + .long 1073030525 # 0x3ff5257d + .long 1073382323 # 0x3ffa83b3 + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1178599424 # 0x46400000 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 2969756424 # 0xb102e308 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 1056964608 # 0x3f000000 + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 1118743631 # 0x42aeac4f + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 796917760 # 0x2f800000 + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 124 # 0x7c + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .long 3968 # 0xf80 + .zero 64 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 849703008 # 0x32a57060 + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 52352 # 0xcc80 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 18944 # 0x4a00 + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 27151 # 0x6a0f + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .short 15813 # 0x3dc5 + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1008864492 # 0x3c220cec + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1030373605 # 0x3d6a40e5 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1047911584 # 0x3e75dca0 + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1060197979 # 0x3f31565b + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .long 1065353298 # 0x3f800052 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .short 31744 # 0x7c00 + .size __svml_hexp_ha_data_internal, 1920 + + diff --git a/linux/avx512/svml_z0_expm1_h_ha.s b/linux/avx512/svml_z0_expm1_h_ha.s new file mode 100644 index 0000000..a9293d8 --- /dev/null +++ b/linux/avx512/svml_z0_expm1_h_ha.s @@ -0,0 +1,174 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_expm1s32_ha # -- Begin function __svml_expm1s32_ha + .p2align 4 + .type __svml_expm1s32_ha,@function +__svml_expm1s32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hexpm1_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vmulps {rn-sae}, %zmm2, %zmm1, %zmm3 + vmulps {rn-sae}, %zmm2, %zmm0, %zmm2 + vrndscaleps $8, {sae}, %zmm3, %zmm3 + vrndscaleps $8, {sae}, %zmm2, %zmm2 + vmovups __svml_hexpm1_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vfmadd231ps {rn-sae}, %zmm4, %zmm3, %zmm1 + vfmadd213ps {rn-sae}, %zmm0, %zmm2, %zmm4 + vmovups __svml_hexpm1_ha_data_internal+128(%rip), %zmm0 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexpm1_ha_data_internal+192(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexpm1_ha_data_internal+256(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hexpm1_ha_data_internal+320(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovaps %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm5, %zmm0, %zmm8 + vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm0 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm6, %zmm4, %zmm0 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm4, %zmm0 + vmulps {rn-sae}, %zmm1, %zmm8, %zmm1 + vmulps {rn-sae}, %zmm4, %zmm0, %zmm0 + vmovups __svml_hexpm1_ha_data_internal+384(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vscalefps {rn-sae}, %zmm3, %zmm4, %zmm3 + vscalefps {rn-sae}, %zmm2, %zmm4, %zmm2 + vsubps {rn-sae}, %zmm4, %zmm3, %zmm5 + vsubps {rn-sae}, %zmm4, %zmm2, %zmm4 + vfpclassps $14, %zmm3, %k1 # k1 = isPositiveZero(zmm3) | isNegativeZero(zmm3) | isPositiveInfinity(zmm3) + vfpclassps $14, %zmm2, %k2 # k2 = isPositiveZero(zmm2) | isNegativeZero(zmm2) | isPositiveInfinity(zmm2) + vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm1 + vmovaps %zmm5, %zmm1 {%k1} + vfmadd213ps {rn-sae}, %zmm4, %zmm2, %zmm0 + vmovaps %zmm4, %zmm0 {%k2} + vcvtps2phx %zmm1, %ymm1 + vcvtps2phx %zmm0, %ymm0 + vinsertf64x4 $1, %ymm0, %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_expm1s32_ha, .Lfunc_end0-__svml_expm1s32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hexpm1_ha_data_internal: + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 3207688728 # 0xbf317218 + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1026273726 # 0x3d2bb1be + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1043050945 # 0x3e2bb1c1 + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1056964271 # 0x3efffeaf + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065352963 # 0x3f7fff03 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .size __svml_hexpm1_ha_data_internal, 448 + + diff --git a/linux/avx512/svml_z0_log10_h_ha.s b/linux/avx512/svml_z0_log10_h_ha.s new file mode 100644 index 0000000..0f572c0 --- /dev/null +++ b/linux/avx512/svml_z0_log10_h_ha.s @@ -0,0 +1,395 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_log10s32_ha # -- Begin function __svml_log10s32_ha + .p2align 4 + .type __svml_log10s32_ha,@function +__svml_log10s32_ha: # + .cfi_startproc +# %bb.0: + vgetmantph $11, {sae}, %zmm0, %zmm1 + vgetexpph {sae}, %zmm0, %zmm0 + vgetexpph {sae}, %zmm1, %zmm2 + vmovups __svml_hlog10_ha_data_internal+384(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vsubph {rn-sae}, %zmm3, %zmm1, %zmm1 + vcvtph2psx %ymm1, %zmm3 + vextractf64x4 $1, %zmm1, %ymm1 + vcvtph2psx %ymm1, %zmm1 + vsubph {rn-sae}, %zmm2, %zmm0, %zmm0 + vcvtph2psx %ymm0, %zmm2 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hlog10_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog10_ha_data_internal+128(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog10_ha_data_internal+192(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog10_ha_data_internal+256(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog10_ha_data_internal+320(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovaps %zmm3, %zmm9 + vfmadd213ps {rn-sae}, %zmm5, %zmm4, %zmm9 + vfmadd213ps {rn-sae}, %zmm5, %zmm1, %zmm4 + vfmadd213ps {rn-sae}, %zmm6, %zmm3, %zmm9 + vfmadd213ps {rn-sae}, %zmm6, %zmm1, %zmm4 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm9 + vfmadd213ps {rn-sae}, %zmm7, %zmm1, %zmm4 + vfmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm9 + vfmadd213ps {rn-sae}, %zmm8, %zmm1, %zmm4 + vmulps {rn-sae}, %zmm3, %zmm9, %zmm3 + vmulps {rn-sae}, %zmm1, %zmm4, %zmm1 + vmovups __svml_hlog10_ha_data_internal(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vfmadd231ps {rn-sae}, %zmm2, %zmm4, %zmm3 + vfmadd231ps {rn-sae}, %zmm0, %zmm4, %zmm1 + vcvtps2phx %zmm3, %ymm0 + vcvtps2phx %zmm1, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + retq +.Lfunc_end0: + .size __svml_log10s32_ha, .Lfunc_end0-__svml_log10s32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hlog10_ha_data_internal: + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1050288282 # 0x3e9a209a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 1031121002 # 0x3d75a86a + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 3185928408 # 0xbde568d8 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 1041664163 # 0x3e1688a3 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 3193854377 # 0xbe5e59a9 + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .long 1054759150 # 0x3ede58ee + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 15360 # 0x3c00 + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .zero 64 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .long 1050288283 # 0x3e9a209b + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .size __svml_hlog10_ha_data_internal, 1216 + + diff --git a/linux/avx512/svml_z0_log1p_h_ha.s b/linux/avx512/svml_z0_log1p_h_ha.s new file mode 100644 index 0000000..17752f4 --- /dev/null +++ b/linux/avx512/svml_z0_log1p_h_ha.s @@ -0,0 +1,207 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_log1ps32_ha # -- Begin function __svml_log1ps32_ha + .p2align 4 + .type __svml_log1ps32_ha,@function +__svml_log1ps32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vmovups __svml_hlog1p_ha_data_internal(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vaddps {rn-sae}, %zmm3, %zmm1, %zmm4 + vaddps {rn-sae}, %zmm3, %zmm2, %zmm5 + vmaxps {sae}, %zmm3, %zmm1, %zmm6 + vmaxps {sae}, %zmm3, %zmm2, %zmm7 + vminps {sae}, %zmm3, %zmm1, %zmm1 + vminps {sae}, %zmm3, %zmm2, %zmm2 + vgetmantps $11, {sae}, %zmm4, %zmm8 + vgetmantps $11, {sae}, %zmm5, %zmm9 + vgetexpps {sae}, %zmm4, %zmm10 + vgetexpps {sae}, %zmm5, %zmm11 + vsubps {rn-sae}, %zmm6, %zmm4, %zmm4 + vsubps {rn-sae}, %zmm4, %zmm1, %zmm1 + vsubps {rn-sae}, %zmm7, %zmm5, %zmm4 + vsubps {rn-sae}, %zmm4, %zmm2, %zmm2 + vgetexpps {sae}, %zmm8, %zmm4 + vsubps {rn-sae}, %zmm10, %zmm4, %zmm4 + vgetexpps {sae}, %zmm9, %zmm5 + vsubps {rn-sae}, %zmm11, %zmm5, %zmm5 + vsubps {rn-sae}, %zmm3, %zmm8, %zmm6 + vsubps {rn-sae}, %zmm3, %zmm9, %zmm3 + vscalefps {rn-sae}, %zmm4, %zmm1, %zmm1 + vscalefps {rn-sae}, %zmm5, %zmm2, %zmm2 + vmovups __svml_hlog1p_ha_data_internal+64(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm7, %zmm1 + vandps %zmm2, %zmm7, %zmm2 + vmovups __svml_hlog1p_ha_data_internal+128(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog1p_ha_data_internal+192(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog1p_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog1p_ha_data_internal+320(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog1p_ha_data_internal+384(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vaddps {rn-sae}, %zmm1, %zmm6, %zmm1 + vfmadd213ps {rn-sae}, %zmm8, %zmm7, %zmm6 + vfmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm7 + vaddps {rn-sae}, %zmm2, %zmm3, %zmm2 + vfpclassph $14, %zmm0, %k1 # k1 = isPositiveZero(zmm0) | isNegativeZero(zmm0) | isPositiveInfinity(zmm0) + vfmadd213ps {rn-sae}, %zmm9, %zmm1, %zmm6 + vfmadd213ps {rn-sae}, %zmm9, %zmm2, %zmm7 + vfmadd213ps {rn-sae}, %zmm10, %zmm1, %zmm6 + vfmadd213ps {rn-sae}, %zmm10, %zmm2, %zmm7 + vfmadd213ps {rn-sae}, %zmm11, %zmm1, %zmm6 + vfmadd213ps {rn-sae}, %zmm11, %zmm2, %zmm7 + vfmadd213ps {rn-sae}, %zmm1, %zmm1, %zmm6 + vfmadd213ps {rn-sae}, %zmm2, %zmm2, %zmm7 + vmovups __svml_hlog1p_ha_data_internal+448(%rip), %zmm1 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm4, %zmm1, %zmm6 + vfnmadd231ps {rn-sae}, %zmm1, %zmm5, %zmm7 + vcvtps2phx %zmm6, %ymm1 + vcvtps2phx %zmm7, %ymm2 + vinserti64x4 $1, %ymm2, %zmm1, %zmm1 + vmovdqu16 %zmm0, %zmm1 {%k1} + vmovdqa64 %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_log1ps32_ha, .Lfunc_end0-__svml_log1ps32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hlog1p_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 1041302505 # 0x3e1103e9 + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 3196384924 # 0xbe84f69c + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 1051539891 # 0x3ead39b3 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3204444370 # 0xbefff0d2 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 3092229209 # 0xb84fac59 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .size __svml_hlog1p_ha_data_internal, 512 + + diff --git a/linux/avx512/svml_z0_log2_h_ha.s b/linux/avx512/svml_z0_log2_h_ha.s new file mode 100644 index 0000000..da0b021 --- /dev/null +++ b/linux/avx512/svml_z0_log2_h_ha.s @@ -0,0 +1,346 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_log2s32_ha # -- Begin function __svml_log2s32_ha + .p2align 4 + .type __svml_log2s32_ha,@function +__svml_log2s32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm0 + vcvtph2psx %ymm0, %zmm0 + vmovups __svml_hlog2_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vgetmantps $11, {sae}, %zmm1, %zmm3 + vgetmantps $11, {sae}, %zmm0, %zmm4 + vgetexpps {sae}, %zmm1, %zmm1 + vgetexpps {sae}, %zmm0, %zmm0 + vsubps {rn-sae}, %zmm2, %zmm3, %zmm5 + vsubps {rn-sae}, %zmm2, %zmm4, %zmm2 + vgetexpps {sae}, %zmm3, %zmm3 + vsubps {rn-sae}, %zmm3, %zmm1, %zmm1 + vgetexpps {sae}, %zmm4, %zmm3 + vsubps {rn-sae}, %zmm3, %zmm0, %zmm0 + vmovups __svml_hlog2_ha_data_internal+64(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog2_ha_data_internal+128(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog2_ha_data_internal+192(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog2_ha_data_internal+256(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hlog2_ha_data_internal+320(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovaps %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm4, %zmm3, %zmm9 + vfmadd213ps {rn-sae}, %zmm4, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm6, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm7, %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm8, %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm8, %zmm2, %zmm3 + vfmadd213ps {rn-sae}, %zmm1, %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm0, %zmm2, %zmm3 + vcvtps2phx %zmm9, %ymm0 + vcvtps2phx %zmm3, %ymm1 + vinsertf64x4 $1, %ymm1, %zmm0, %zmm0 + retq +.Lfunc_end0: + .size __svml_log2s32_ha, .Lfunc_end0-__svml_log2s32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hlog2_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .zero 64 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .size __svml_hlog2_ha_data_internal, 1088 + + diff --git a/linux/avx512/svml_z0_log_h_ha.s b/linux/avx512/svml_z0_log_h_ha.s new file mode 100644 index 0000000..2a69934 --- /dev/null +++ b/linux/avx512/svml_z0_log_h_ha.s @@ -0,0 +1,543 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_logs32_ha # -- Begin function __svml_logs32_ha + .p2align 4 + .type __svml_logs32_ha,@function +__svml_logs32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vgetmantps $11, {sae}, %zmm1, %zmm3 + vgetmantps $11, {sae}, %zmm2, %zmm4 + vgetexpps {sae}, %zmm1, %zmm5 + vgetexpps {sae}, %zmm2, %zmm6 + vpsrld $19, %zmm3, %zmm7 + vpsrld $19, %zmm4, %zmm8 + vmovups __svml_hlog_ha_data_internal(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vsubps {rn-sae}, %zmm9, %zmm3, %zmm10 + vsubps {rn-sae}, %zmm9, %zmm4, %zmm9 + vmovdqu64 __svml_hlog_ha_data_internal+64(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vpermd %zmm11, %zmm7, %zmm12 + vpermd %zmm11, %zmm8, %zmm11 + vmovdqu64 __svml_hlog_ha_data_internal+128(%rip), %zmm13 # AlignMOV convert to UnAlignMOV + vpermd %zmm13, %zmm7, %zmm14 + vpermd %zmm13, %zmm8, %zmm13 + vfmadd231ps {rn-sae}, %zmm12, %zmm10, %zmm14 + vfmadd231ps {rn-sae}, %zmm11, %zmm9, %zmm13 + vgetexpps {sae}, %zmm3, %zmm3 + vsubps {rn-sae}, %zmm3, %zmm5, %zmm3 + vgetexpps {sae}, %zmm4, %zmm4 + vsubps {rn-sae}, %zmm4, %zmm6, %zmm4 + vmovdqu64 __svml_hlog_ha_data_internal+192(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vpxor %xmm6, %xmm6, %xmm6 + vpermd %zmm5, %zmm7, %zmm6 + vpermd %zmm5, %zmm8, %zmm5 + vfmadd231ps {rn-sae}, %zmm14, %zmm10, %zmm6 + vfmadd231ps {rn-sae}, %zmm13, %zmm9, %zmm5 + vmovdqu64 __svml_hlog_ha_data_internal+256(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vpermd %zmm11, %zmm7, %zmm7 + vpermd %zmm11, %zmm8, %zmm8 + vfmadd231ps {rn-sae}, %zmm6, %zmm10, %zmm7 + vfmadd231ps {rn-sae}, %zmm5, %zmm9, %zmm8 + vmovups __svml_hlog_ha_data_internal+320(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmulps {rn-sae}, %zmm5, %zmm3, %zmm3 + vmulps {rn-sae}, %zmm5, %zmm4, %zmm4 + vfpclassps $94, %zmm1, %k0 # k0 = isPositiveZero(zmm1) | isNegativeZero(zmm1) | isPositiveInfinity(zmm1) | isNegativeInfinity(zmm1) | isNegative(zmm1) + vfpclassps $94, %zmm2, %k1 # k1 = isPositiveZero(zmm2) | isNegativeZero(zmm2) | isPositiveInfinity(zmm2) | isNegativeInfinity(zmm2) | isNegative(zmm2) + vfmadd231ps {rn-sae}, %zmm7, %zmm10, %zmm3 + vfmadd231ps {rn-sae}, %zmm8, %zmm9, %zmm4 + vcvtps2phx %zmm3, %ymm1 + vcvtps2phx %zmm4, %ymm2 + vinsertf64x4 $1, %ymm2, %zmm1, %zmm1 + kortestw %k1, %k0 + jne .LBB0_1 +# %bb.2: + vmovaps %zmm1, %zmm0 + retq +.LBB0_1: + pushq %rbp + movq %rsp, %rbp + pushq %rsi + pushq %rdi + andq $-64, %rsp + subq $1216, %rsp # imm = 0x4C0 + kmovq %k7, -24(%rbp) # 8-byte Spill + kmovq %k6, -32(%rbp) # 8-byte Spill + kmovq %k5, -40(%rbp) # 8-byte Spill + kmovq %k4, -48(%rbp) # 8-byte Spill + vmovups %zmm31, -112(%rbp) # 64-byte Spill + vmovups %zmm30, -176(%rbp) # 64-byte Spill + vmovups %zmm29, -240(%rbp) # 64-byte Spill + vmovups %zmm28, -304(%rbp) # 64-byte Spill + vmovups %zmm27, -368(%rbp) # 64-byte Spill + vmovups %zmm26, -432(%rbp) # 64-byte Spill + vmovups %zmm25, -496(%rbp) # 64-byte Spill + vmovups %zmm24, -560(%rbp) # 64-byte Spill + vmovups %zmm23, -624(%rbp) # 64-byte Spill + vmovups %zmm22, -688(%rbp) # 64-byte Spill + vmovups %zmm21, -752(%rbp) # 64-byte Spill + vmovups %zmm20, -816(%rbp) # 64-byte Spill + vmovups %zmm19, -880(%rbp) # 64-byte Spill + vmovups %zmm18, -944(%rbp) # 64-byte Spill + vmovups %zmm17, -1008(%rbp) # 64-byte Spill + vmovups %zmm16, -1072(%rbp) # 64-byte Spill + kunpckwd %k0, %k1, %k0 + kmovd %k0, %edx + vmovups %zmm0, 64(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm1, (%rsp) # AlignMOV convert to UnAlignMOV + leaq 64(%rsp), %rdi + movq %rsp, %rsi + vzeroupper + callq *__svml_z0__svml_hlog_ha_cout_rare_internal_wrapper@GOTPCREL(%rip) + vmovups (%rsp), %zmm1 # AlignMOV convert to UnAlignMOV + vmovups -1072(%rbp), %zmm16 # 64-byte Reload + vmovups -1008(%rbp), %zmm17 # 64-byte Reload + vmovups -944(%rbp), %zmm18 # 64-byte Reload + vmovups -880(%rbp), %zmm19 # 64-byte Reload + vmovups -816(%rbp), %zmm20 # 64-byte Reload + vmovups -752(%rbp), %zmm21 # 64-byte Reload + vmovups -688(%rbp), %zmm22 # 64-byte Reload + vmovups -624(%rbp), %zmm23 # 64-byte Reload + vmovups -560(%rbp), %zmm24 # 64-byte Reload + vmovups -496(%rbp), %zmm25 # 64-byte Reload + vmovups -432(%rbp), %zmm26 # 64-byte Reload + vmovups -368(%rbp), %zmm27 # 64-byte Reload + vmovups -304(%rbp), %zmm28 # 64-byte Reload + vmovups -240(%rbp), %zmm29 # 64-byte Reload + vmovups -176(%rbp), %zmm30 # 64-byte Reload + vmovups -112(%rbp), %zmm31 # 64-byte Reload + kmovq -48(%rbp), %k4 # 8-byte Reload + kmovq -40(%rbp), %k5 # 8-byte Reload + kmovq -32(%rbp), %k6 # 8-byte Reload + kmovq -24(%rbp), %k7 # 8-byte Reload + leaq -16(%rbp), %rsp + popq %rdi + popq %rsi + popq %rbp + vmovaps %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_logs32_ha, .Lfunc_end0-__svml_logs32_ha + .cfi_endproc + # -- End function + .p2align 4 # -- Begin function __svml_z0__svml_hlog_ha_cout_rare_internal_wrapper + .type __svml_z0__svml_hlog_ha_cout_rare_internal_wrapper,@function +__svml_z0__svml_hlog_ha_cout_rare_internal_wrapper: # + .cfi_startproc +# %bb.0: + subq $168, %rsp + vmovups %xmm15, 144(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm14, 128(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm13, 112(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm12, 96(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm11, 80(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm10, 64(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm9, 48(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm8, 32(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + xorl %eax, %eax + .p2align 4 +.LBB1_1: # =>This Inner Loop Header: Depth=1 + btl %eax, %edx + jb .LBB1_2 +.LBB1_3: # in Loop: Header=BB1_1 Depth=1 + incq %rax + addq $2, %rsi + addq $2, %rdi + cmpq $32, %rax + jne .LBB1_1 + jmp .LBB1_4 +.LBB1_2: # in Loop: Header=BB1_1 Depth=1 + movq %rdi, 16(%rsp) # 8-byte Spill + movq 16(%rsp), %rdi # 8-byte Reload + movq %rsi, 8(%rsp) # 8-byte Spill + movq 8(%rsp), %rsi # 8-byte Reload + movl %edx, 4(%rsp) # 4-byte Spill + movq %rax, 24(%rsp) # 8-byte Spill + callq __svml_hlog_ha_cout_rare_internal + movq 24(%rsp), %rax # 8-byte Reload + movq 16(%rsp), %rdi # 8-byte Reload + movq 8(%rsp), %rsi # 8-byte Reload + movl 4(%rsp), %edx # 4-byte Reload + jmp .LBB1_3 +.LBB1_4: + vmovups 32(%rsp), %xmm8 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 48(%rsp), %xmm9 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 64(%rsp), %xmm10 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 80(%rsp), %xmm11 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 96(%rsp), %xmm12 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 112(%rsp), %xmm13 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 128(%rsp), %xmm14 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 144(%rsp), %xmm15 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + addq $168, %rsp + retq +.Lfunc_end1: + .size __svml_z0__svml_hlog_ha_cout_rare_internal_wrapper, .Lfunc_end1-__svml_z0__svml_hlog_ha_cout_rare_internal_wrapper + .cfi_endproc + # -- End function + .hidden __svml_hlog_ha_cout_rare_internal + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hlog_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 3194499567 # 0xbe6831ef + .long 3191881870 # 0xbe40408e + .long 3189820965 # 0xbe20ce25 + .long 3188177733 # 0xbe07bb45 + .long 3186034033 # 0xbde70571 + .long 3183874545 # 0xbdc611f1 + .long 3182098566 # 0xbdaaf886 + .long 3180625528 # 0xbd947e78 + .long 3205885581 # 0xbf15ee8d + .long 3204713431 # 0xbf040bd7 + .long 3202986354 # 0xbee9b172 + .long 3201283063 # 0xbecfb3f7 + .long 3199818667 # 0xbeb95bab + .long 3198553107 # 0xbea60c13 + .long 3197454075 # 0xbe9546fb + .long 3196495328 # 0xbe86a5e0 + .long 1051342523 # 0x3eaa36bb + .long 1051102009 # 0x3ea68b39 + .long 1050719235 # 0x3ea0b403 + .long 1050259833 # 0x3e99b179 + .long 1049764999 # 0x3e922487 + .long 1049260512 # 0x3e8a71e0 + .long 1048762310 # 0x3e82d7c6 + .long 1047983990 # 0x3e76f776 + .long 1044808958 # 0x3e4684fe + .long 1047891773 # 0x3e758f3d + .long 1049356949 # 0x3e8bea95 + .long 1050157361 # 0x3e982131 + .long 1050708164 # 0x3ea088c4 + .long 1051065485 # 0x3ea5fc8d + .long 1051272715 # 0x3ea9260b + .long 1051363578 # 0x3eaa88fa + .long 3204447891 # 0xbefffe93 + .long 3204432523 # 0xbeffc28b + .long 3204384627 # 0xbeff0773 + .long 3204298603 # 0xbefdb76b + .long 3204175099 # 0xbefbd4fb + .long 3204017696 # 0xbef96e20 + .long 3203831137 # 0xbef69561 + .long 3203620393 # 0xbef35e29 + .long 3204845352 # 0xbf060f28 + .long 3204676294 # 0xbf037ac6 + .long 3204570658 # 0xbf01de22 + .long 3204507866 # 0xbf00e8da + .long 3204473248 # 0xbf0061a0 + .long 3204456356 # 0xbf001fa4 + .long 3204449777 # 0xbf0005f1 + .long 3204448283 # 0xbf00001b + .long 1065353216 # 0x3f800000 + .long 1065353045 # 0x3f7fff55 + .long 1065352036 # 0x3f7ffb64 + .long 1065349339 # 0x3f7ff0db + .long 1065344188 # 0x3f7fdcbc + .long 1065335989 # 0x3f7fbcb5 + .long 1065324332 # 0x3f7f8f2c + .long 1065308972 # 0x3f7f532c + .long 1065328777 # 0x3f7fa089 + .long 1065341148 # 0x3f7fd0dc + .long 1065347780 # 0x3f7feac4 + .long 1065351069 # 0x3f7ff79d + .long 1065352524 # 0x3f7ffd4c + .long 1065353058 # 0x3f7fff62 + .long 1065353199 # 0x3f7fffef + .long 1065353216 # 0x3f800000 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 8388608 # 0x800000 + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .long 2139095039 # 0x7f7fffff + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .short 31 # 0x1f + .zero 64 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 1 # 0x1 + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 127 # 0x7f + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 1045509755 # 0x3e51367b + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 3200242518 # 0xbebfd356 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 1056565587 # 0x3ef9e953 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 3208159048 # 0xbf389f48 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1069066212 # 0x3fb8a7e4 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .short 64512 # 0xfc00 + .size __svml_hlog_ha_data_internal, 1280 + + diff --git a/linux/avx512/svml_z0_pow_h_ha.s b/linux/avx512/svml_z0_pow_h_ha.s new file mode 100644 index 0000000..c927ca3 --- /dev/null +++ b/linux/avx512/svml_z0_pow_h_ha.s @@ -0,0 +1,401 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_pows32_ha # -- Begin function __svml_pows32_ha + .p2align 4 + .type __svml_pows32_ha,@function +__svml_pows32_ha: # + .cfi_startproc +# %bb.0: + vfpclassph $223, %zmm0, %k0 # k0 = isQuietNaN(zmm0) | isPositiveZero(zmm0) | isNegativeZero(zmm0) | isPositiveInfinity(zmm0) | isNegativeInfinity(zmm0) | isNegative(zmm0) | isSignalingNaN(zmm0) + vcvtph2psx %ymm0, %zmm2 + vfpclassph $153, %zmm1, %k1 # k1 = isQuietNaN(zmm1) | isPositiveInfinity(zmm1) | isNegativeInfinity(zmm1) | isSignalingNaN(zmm1) + vextractf64x4 $1, %zmm0, %ymm3 + vcvtph2psx %ymm3, %zmm3 + vcvtph2psx %ymm1, %zmm4 + vextractf64x4 $1, %zmm1, %ymm5 + vcvtph2psx %ymm5, %zmm5 + vgetmantps $11, {sae}, %zmm2, %zmm6 + vgetmantps $11, {sae}, %zmm3, %zmm7 + vgetexpps {sae}, %zmm2, %zmm2 + vgetexpps {sae}, %zmm3, %zmm3 + vmovups __svml_hpow_ha_data_internal(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vsubps {rn-sae}, %zmm8, %zmm6, %zmm9 + vsubps {rn-sae}, %zmm8, %zmm7, %zmm8 + vgetexpps {sae}, %zmm6, %zmm6 + vsubps {rn-sae}, %zmm6, %zmm2, %zmm2 + vgetexpps {sae}, %zmm7, %zmm6 + vsubps {rn-sae}, %zmm6, %zmm3, %zmm3 + vmovups __svml_hpow_ha_data_internal+64(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+128(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+192(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+256(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+320(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+384(%rip), %zmm13 # AlignMOV convert to UnAlignMOV + vmovaps %zmm9, %zmm14 + vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm14 + vfmadd213ps {rn-sae}, %zmm7, %zmm8, %zmm6 + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm14 + vfmadd213ps {rn-sae}, %zmm10, %zmm8, %zmm6 + vfmadd213ps {rn-sae}, %zmm11, %zmm9, %zmm14 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm6 + vfmadd213ps {rn-sae}, %zmm12, %zmm9, %zmm14 + vfmadd213ps {rn-sae}, %zmm12, %zmm8, %zmm6 + vfmadd213ps {rn-sae}, %zmm13, %zmm9, %zmm14 + vfmadd213ps {rn-sae}, %zmm13, %zmm8, %zmm6 + vfmadd213ps {rn-sae}, %zmm2, %zmm9, %zmm14 + vmulps {rn-sae}, %zmm14, %zmm4, %zmm2 + vfmadd213ps {rn-sae}, %zmm3, %zmm8, %zmm6 + vmulps {rn-sae}, %zmm6, %zmm5, %zmm3 + vreduceps $9, {sae}, %zmm2, %zmm4 + vreduceps $9, {sae}, %zmm3, %zmm5 + vmovups __svml_hpow_ha_data_internal+448(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+512(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+576(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hpow_ha_data_internal+640(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm5, %zmm6 + vfmadd213ps {rn-sae}, %zmm8, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm5, %zmm6 + vfmadd213ps {rn-sae}, %zmm9, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm9, %zmm5, %zmm6 + vscalefps {rn-sae}, %zmm2, %zmm10, %zmm2 + vscalefps {rn-sae}, %zmm3, %zmm6, %zmm3 + vcvtps2phx %zmm2, %ymm2 + vcvtps2phx %zmm3, %ymm3 + vinsertf64x4 $1, %ymm3, %zmm2, %zmm2 + kortestd %k1, %k0 + jne .LBB0_1 +# %bb.2: + vmovaps %zmm2, %zmm0 + retq +.LBB0_1: + pushq %rbp + movq %rsp, %rbp + pushq %rsi + pushq %rdi + andq $-64, %rsp + subq $1280, %rsp # imm = 0x500 + kmovq %k7, -24(%rbp) # 8-byte Spill + kmovq %k6, -32(%rbp) # 8-byte Spill + kmovq %k5, -40(%rbp) # 8-byte Spill + kmovq %k4, -48(%rbp) # 8-byte Spill + vmovups %zmm31, -112(%rbp) # 64-byte Spill + vmovups %zmm30, -176(%rbp) # 64-byte Spill + vmovups %zmm29, -240(%rbp) # 64-byte Spill + vmovups %zmm28, -304(%rbp) # 64-byte Spill + vmovups %zmm27, -368(%rbp) # 64-byte Spill + vmovups %zmm26, -432(%rbp) # 64-byte Spill + vmovups %zmm25, -496(%rbp) # 64-byte Spill + vmovups %zmm24, -560(%rbp) # 64-byte Spill + vmovups %zmm23, -624(%rbp) # 64-byte Spill + vmovups %zmm22, -688(%rbp) # 64-byte Spill + vmovups %zmm21, -752(%rbp) # 64-byte Spill + vmovups %zmm20, -816(%rbp) # 64-byte Spill + vmovups %zmm19, -880(%rbp) # 64-byte Spill + vmovups %zmm18, -944(%rbp) # 64-byte Spill + vmovups %zmm17, -1008(%rbp) # 64-byte Spill + vmovups %zmm16, -1072(%rbp) # 64-byte Spill + kord %k1, %k0, %k0 + kmovd %k0, %ecx + vmovups %zmm0, 128(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm1, 64(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm2, (%rsp) # AlignMOV convert to UnAlignMOV + leaq 128(%rsp), %rdi + leaq 64(%rsp), %rsi + movq %rsp, %rdx + vzeroupper + callq *__svml_z0__svml_hpow_ha_cout_rare_internal_wrapper@GOTPCREL(%rip) + vmovups (%rsp), %zmm2 # AlignMOV convert to UnAlignMOV + vmovups -1072(%rbp), %zmm16 # 64-byte Reload + vmovups -1008(%rbp), %zmm17 # 64-byte Reload + vmovups -944(%rbp), %zmm18 # 64-byte Reload + vmovups -880(%rbp), %zmm19 # 64-byte Reload + vmovups -816(%rbp), %zmm20 # 64-byte Reload + vmovups -752(%rbp), %zmm21 # 64-byte Reload + vmovups -688(%rbp), %zmm22 # 64-byte Reload + vmovups -624(%rbp), %zmm23 # 64-byte Reload + vmovups -560(%rbp), %zmm24 # 64-byte Reload + vmovups -496(%rbp), %zmm25 # 64-byte Reload + vmovups -432(%rbp), %zmm26 # 64-byte Reload + vmovups -368(%rbp), %zmm27 # 64-byte Reload + vmovups -304(%rbp), %zmm28 # 64-byte Reload + vmovups -240(%rbp), %zmm29 # 64-byte Reload + vmovups -176(%rbp), %zmm30 # 64-byte Reload + vmovups -112(%rbp), %zmm31 # 64-byte Reload + kmovq -48(%rbp), %k4 # 8-byte Reload + kmovq -40(%rbp), %k5 # 8-byte Reload + kmovq -32(%rbp), %k6 # 8-byte Reload + kmovq -24(%rbp), %k7 # 8-byte Reload + leaq -16(%rbp), %rsp + popq %rdi + popq %rsi + popq %rbp + vmovaps %zmm2, %zmm0 + retq +.Lfunc_end0: + .size __svml_pows32_ha, .Lfunc_end0-__svml_pows32_ha + .cfi_endproc + # -- End function + .p2align 4 # -- Begin function __svml_z0__svml_hpow_ha_cout_rare_internal_wrapper + .type __svml_z0__svml_hpow_ha_cout_rare_internal_wrapper,@function +__svml_z0__svml_hpow_ha_cout_rare_internal_wrapper: # + .cfi_startproc +# %bb.0: + subq $184, %rsp + vmovups %xmm15, 160(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm14, 144(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm13, 128(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm12, 112(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm11, 96(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm10, 80(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm9, 64(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm8, 48(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + xorl %eax, %eax + .p2align 4 +.LBB1_1: # =>This Inner Loop Header: Depth=1 + btl %eax, %ecx + jb .LBB1_2 +.LBB1_3: # in Loop: Header=BB1_1 Depth=1 + incq %rax + addq $2, %rdx + addq $2, %rsi + addq $2, %rdi + cmpq $32, %rax + jne .LBB1_1 + jmp .LBB1_4 +.LBB1_2: # in Loop: Header=BB1_1 Depth=1 + movq %rdi, 32(%rsp) # 8-byte Spill + movq 32(%rsp), %rdi # 8-byte Reload + movq %rsi, 24(%rsp) # 8-byte Spill + movq 24(%rsp), %rsi # 8-byte Reload + movq %rdx, 16(%rsp) # 8-byte Spill + movq 16(%rsp), %rdx # 8-byte Reload + movl %ecx, 12(%rsp) # 4-byte Spill + movq %rax, 40(%rsp) # 8-byte Spill + callq __svml_hpow_ha_cout_rare_internal + movq 40(%rsp), %rax # 8-byte Reload + movq 32(%rsp), %rdi # 8-byte Reload + movq 24(%rsp), %rsi # 8-byte Reload + movq 16(%rsp), %rdx # 8-byte Reload + movl 12(%rsp), %ecx # 4-byte Reload + jmp .LBB1_3 +.LBB1_4: + vmovups 48(%rsp), %xmm8 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 64(%rsp), %xmm9 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 80(%rsp), %xmm10 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 96(%rsp), %xmm11 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 112(%rsp), %xmm12 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 128(%rsp), %xmm13 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 144(%rsp), %xmm14 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 160(%rsp), %xmm15 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + addq $184, %rsp + retq +.Lfunc_end1: + .size __svml_z0__svml_hpow_ha_cout_rare_internal_wrapper, .Lfunc_end1-__svml_z0__svml_hpow_ha_cout_rare_internal_wrapper + .cfi_endproc + # -- End function + .hidden __svml_hpow_ha_cout_rare_internal + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hpow_ha_data_internal: + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 3189767340 # 0xbe1ffcac + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 1050174652 # 0x3e9864bc + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 3200067665 # 0xbebd2851 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 1056329159 # 0x3ef64dc7 + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 3208158829 # 0xbf389e6d + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1069066796 # 0x3fb8aa2c + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1034040789 # 0x3da235d5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1046853877 # 0x3e65b8f5 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1060260616 # 0x3f324b08 + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .long 1065351420 # 0x3f7ff8fc + .size __svml_hpow_ha_data_internal, 704 + + diff --git a/linux/avx512/svml_z0_sin_h_ha.s b/linux/avx512/svml_z0_sin_h_ha.s new file mode 100644 index 0000000..735a252 --- /dev/null +++ b/linux/avx512/svml_z0_sin_h_ha.s @@ -0,0 +1,1557 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_sins32_ha # -- Begin function __svml_sins32_ha + .p2align 4 + .type __svml_sins32_ha,@function +__svml_sins32_ha: # + .cfi_startproc +# %bb.0: + vcvtph2psx %ymm0, %zmm1 + vextractf64x4 $1, %zmm0, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vmovups __svml_hsin_ha_data_internal+4096(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vandps %zmm1, %zmm3, %zmm4 + vandps %zmm2, %zmm3, %zmm5 + vmovups __svml_hsin_ha_data_internal+5248(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsin_ha_data_internal+5312(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovaps %zmm6, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm4, %zmm8 + vfmadd213ps {rn-sae}, %zmm7, %zmm5, %zmm6 + vpslld $31, %zmm8, %zmm9 + vpslld $31, %zmm6, %zmm10 + vsubps {rn-sae}, %zmm7, %zmm8, %zmm8 + vsubps {rn-sae}, %zmm7, %zmm6, %zmm6 + vmovups __svml_hsin_ha_data_internal+4800(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovaps %zmm7, %zmm11 + vfnmadd213ps {rn-sae}, %zmm4, %zmm8, %zmm11 + vfnmadd213ps {rn-sae}, %zmm5, %zmm6, %zmm7 + vmovups __svml_hsin_ha_data_internal+4864(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm12, %zmm8, %zmm11 + vfnmadd231ps {rn-sae}, %zmm12, %zmm6, %zmm7 + vmovups __svml_hsin_ha_data_internal+4928(%rip), %zmm12 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm8, %zmm12, %zmm11 + vfnmadd231ps {rn-sae}, %zmm12, %zmm6, %zmm7 + vmulps {rn-sae}, %zmm11, %zmm11, %zmm6 + vmulps {rn-sae}, %zmm7, %zmm7, %zmm8 + vpxord %zmm11, %zmm9, %zmm9 + vpxord %zmm7, %zmm10, %zmm7 + vmovups __svml_hsin_ha_data_internal+5184(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsin_ha_data_internal+5120(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovaps %zmm6, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm10, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm10 + vmovups __svml_hsin_ha_data_internal+5056(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vfmadd213ps {rn-sae}, %zmm11, %zmm6, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm10 + vmovups __svml_hsin_ha_data_internal+4992(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vfmadd213ps {rn-sae}, %zmm11, %zmm6, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm8, %zmm10 + vmulps {rn-sae}, %zmm6, %zmm12, %zmm6 + vmulps {rn-sae}, %zmm8, %zmm10, %zmm8 + vfmadd213ps {rn-sae}, %zmm9, %zmm9, %zmm6 + vfmadd213ps {rn-sae}, %zmm7, %zmm7, %zmm8 + vpternlogd $210, %zmm1, %zmm3, %zmm6 # zmm6 = zmm6 ^ (zmm1 & ~zmm3) + vpternlogd $210, %zmm2, %zmm3, %zmm8 # zmm8 = zmm8 ^ (zmm2 & ~zmm3) + vmovups __svml_hsin_ha_data_internal+4160(%rip), %zmm1 # AlignMOV convert to UnAlignMOV + vcmpnleps %zmm1, %zmm4, %k0 + vcmpnleps %zmm1, %zmm5, %k1 + vcvtps2phx %zmm6, %ymm1 + vcvtps2phx %zmm8, %ymm2 + vinsertf64x4 $1, %ymm2, %zmm1, %zmm1 + kortestw %k1, %k0 + jne .LBB0_1 +# %bb.2: + vmovaps %zmm1, %zmm0 + retq +.LBB0_1: + pushq %rbp + movq %rsp, %rbp + pushq %rsi + pushq %rdi + andq $-64, %rsp + subq $1216, %rsp # imm = 0x4C0 + kmovq %k7, -24(%rbp) # 8-byte Spill + kmovq %k6, -32(%rbp) # 8-byte Spill + kmovq %k5, -40(%rbp) # 8-byte Spill + kmovq %k4, -48(%rbp) # 8-byte Spill + vmovups %zmm31, -112(%rbp) # 64-byte Spill + vmovups %zmm30, -176(%rbp) # 64-byte Spill + vmovups %zmm29, -240(%rbp) # 64-byte Spill + vmovups %zmm28, -304(%rbp) # 64-byte Spill + vmovups %zmm27, -368(%rbp) # 64-byte Spill + vmovups %zmm26, -432(%rbp) # 64-byte Spill + vmovups %zmm25, -496(%rbp) # 64-byte Spill + vmovups %zmm24, -560(%rbp) # 64-byte Spill + vmovups %zmm23, -624(%rbp) # 64-byte Spill + vmovups %zmm22, -688(%rbp) # 64-byte Spill + vmovups %zmm21, -752(%rbp) # 64-byte Spill + vmovups %zmm20, -816(%rbp) # 64-byte Spill + vmovups %zmm19, -880(%rbp) # 64-byte Spill + vmovups %zmm18, -944(%rbp) # 64-byte Spill + vmovups %zmm17, -1008(%rbp) # 64-byte Spill + vmovups %zmm16, -1072(%rbp) # 64-byte Spill + kunpckwd %k0, %k1, %k0 + kmovd %k0, %edx + vmovups %zmm0, 64(%rsp) # AlignMOV convert to UnAlignMOV + vmovups %zmm1, (%rsp) # AlignMOV convert to UnAlignMOV + leaq 64(%rsp), %rdi + movq %rsp, %rsi + vzeroupper + callq *__svml_z0__svml_hsin_ha_cout_rare_internal_wrapper@GOTPCREL(%rip) + vmovups (%rsp), %zmm1 # AlignMOV convert to UnAlignMOV + vmovups -1072(%rbp), %zmm16 # 64-byte Reload + vmovups -1008(%rbp), %zmm17 # 64-byte Reload + vmovups -944(%rbp), %zmm18 # 64-byte Reload + vmovups -880(%rbp), %zmm19 # 64-byte Reload + vmovups -816(%rbp), %zmm20 # 64-byte Reload + vmovups -752(%rbp), %zmm21 # 64-byte Reload + vmovups -688(%rbp), %zmm22 # 64-byte Reload + vmovups -624(%rbp), %zmm23 # 64-byte Reload + vmovups -560(%rbp), %zmm24 # 64-byte Reload + vmovups -496(%rbp), %zmm25 # 64-byte Reload + vmovups -432(%rbp), %zmm26 # 64-byte Reload + vmovups -368(%rbp), %zmm27 # 64-byte Reload + vmovups -304(%rbp), %zmm28 # 64-byte Reload + vmovups -240(%rbp), %zmm29 # 64-byte Reload + vmovups -176(%rbp), %zmm30 # 64-byte Reload + vmovups -112(%rbp), %zmm31 # 64-byte Reload + kmovq -48(%rbp), %k4 # 8-byte Reload + kmovq -40(%rbp), %k5 # 8-byte Reload + kmovq -32(%rbp), %k6 # 8-byte Reload + kmovq -24(%rbp), %k7 # 8-byte Reload + leaq -16(%rbp), %rsp + popq %rdi + popq %rsi + popq %rbp + vmovaps %zmm1, %zmm0 + retq +.Lfunc_end0: + .size __svml_sins32_ha, .Lfunc_end0-__svml_sins32_ha + .cfi_endproc + # -- End function + .p2align 4 # -- Begin function __svml_z0__svml_hsin_ha_cout_rare_internal_wrapper + .type __svml_z0__svml_hsin_ha_cout_rare_internal_wrapper,@function +__svml_z0__svml_hsin_ha_cout_rare_internal_wrapper: # + .cfi_startproc +# %bb.0: + subq $168, %rsp + vmovups %xmm15, 144(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm14, 128(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm13, 112(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm12, 96(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm11, 80(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm10, 64(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm9, 48(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + vmovups %xmm8, 32(%rsp) # 16-byte Spill + # AlignMOV convert to UnAlignMOV + xorl %eax, %eax + .p2align 4 +.LBB1_1: # =>This Inner Loop Header: Depth=1 + btl %eax, %edx + jb .LBB1_2 +.LBB1_3: # in Loop: Header=BB1_1 Depth=1 + incq %rax + addq $2, %rsi + addq $2, %rdi + cmpq $32, %rax + jne .LBB1_1 + jmp .LBB1_4 +.LBB1_2: # in Loop: Header=BB1_1 Depth=1 + movq %rdi, 16(%rsp) # 8-byte Spill + movq 16(%rsp), %rdi # 8-byte Reload + movq %rsi, 8(%rsp) # 8-byte Spill + movq 8(%rsp), %rsi # 8-byte Reload + movl %edx, 4(%rsp) # 4-byte Spill + movq %rax, 24(%rsp) # 8-byte Spill + callq __svml_hsin_ha_cout_rare_internal + movq 24(%rsp), %rax # 8-byte Reload + movq 16(%rsp), %rdi # 8-byte Reload + movq 8(%rsp), %rsi # 8-byte Reload + movl 4(%rsp), %edx # 4-byte Reload + jmp .LBB1_3 +.LBB1_4: + vmovups 32(%rsp), %xmm8 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 48(%rsp), %xmm9 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 64(%rsp), %xmm10 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 80(%rsp), %xmm11 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 96(%rsp), %xmm12 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 112(%rsp), %xmm13 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 128(%rsp), %xmm14 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + vmovups 144(%rsp), %xmm15 # 16-byte Reload + # AlignMOV convert to UnAlignMOV + addq $168, %rsp + retq +.Lfunc_end1: + .size __svml_z0__svml_hsin_ha_cout_rare_internal_wrapper, .Lfunc_end1-__svml_z0__svml_hsin_ha_cout_rare_internal_wrapper + .cfi_endproc + # -- End function + .hidden __svml_hsin_ha_cout_rare_internal + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hsin_ha_data_internal: + .zero 4 + .zero 4 + .zero 4 + .long 1065353216 # 0x3f800000 + .long 3114133471 # 0xb99de7df + .long 1019808432 # 0x3cc90ab0 + .long 2953169304 # 0xb005c998 + .long 1065353216 # 0x3f800000 + .long 3130909128 # 0xba9de1c8 + .long 1028193072 # 0x3d48fb30 + .long 2968461951 # 0xb0ef227f + .long 1065353216 # 0x3f800000 + .long 3140588184 # 0xbb319298 + .long 1033283845 # 0x3d96a905 + .long 2975014497 # 0xb1531e61 + .long 1065353216 # 0x3f800000 + .long 3147680113 # 0xbb9dc971 + .long 1036565814 # 0x3dc8bd36 + .long 2960495349 # 0xb07592f5 + .long 1065353216 # 0x3f800000 + .long 3153489468 # 0xbbf66e3c + .long 1039839859 # 0x3dfab273 + .long 2970970319 # 0xb11568cf + .long 1065353216 # 0x3f800000 + .long 3157349634 # 0xbc315502 + .long 1041645699 # 0x3e164083 + .long 837346836 # 0x31e8e614 + .long 1065353216 # 0x3f800000 + .long 3161536011 # 0xbc71360b + .long 1043271842 # 0x3e2f10a2 + .long 823224313 # 0x311167f9 + .long 1065353216 # 0x3f800000 + .long 3164432432 # 0xbc9d6830 + .long 1044891074 # 0x3e47c5c2 + .long 2967836285 # 0xb0e5967d + .long 1065353216 # 0x3f800000 + .long 3167161428 # 0xbcc70c54 + .long 1046502419 # 0x3e605c13 + .long 833086710 # 0x31a7e4f6 + .long 1065353216 # 0x3f800000 + .long 3170205956 # 0xbcf58104 + .long 1048104908 # 0x3e78cfcc + .long 2971391005 # 0xb11bd41d + .long 1065353216 # 0x3f800000 + .long 3172229004 # 0xbd145f8c + .long 1049136787 # 0x3e888e93 + .long 824999326 # 0x312c7d9e + .long 1065353216 # 0x3f800000 + .long 3174063957 # 0xbd305f55 + .long 1049927729 # 0x3e94a031 + .long 846027248 # 0x326d59f0 + .long 1065353216 # 0x3f800000 + .long 3176053642 # 0xbd4ebb8a + .long 1050712805 # 0x3ea09ae5 + .long 2990442912 # 0xb23e89a0 + .long 1065353216 # 0x3f800000 + .long 3178196862 # 0xbd6f6f7e + .long 1051491540 # 0x3eac7cd4 + .long 2988789250 # 0xb2254e02 + .long 1065353216 # 0x3f800000 + .long 3179887378 # 0xbd893b12 + .long 1052263466 # 0x3eb8442a + .long 2993707942 # 0xb2705ba6 + .long 1065353216 # 0x3f800000 + .long 3181110540 # 0xbd9be50c + .long 1053028117 # 0x3ec3ef15 + .long 836097324 # 0x31d5d52c + .long 1065353216 # 0x3f800000 + .long 3182408396 # 0xbdafb2cc + .long 1053785034 # 0x3ecf7bca + .long 829045603 # 0x316a3b63 + .long 1065353216 # 0x3f800000 + .long 3183780163 # 0xbdc4a143 + .long 1054533760 # 0x3edae880 + .long 840832460 # 0x321e15cc + .long 1065353216 # 0x3f800000 + .long 3185225016 # 0xbddaad38 + .long 1055273845 # 0x3ee63375 + .long 2983839604 # 0xb1d9c774 + .long 1065353216 # 0x3f800000 + .long 3186742084 # 0xbdf1d344 + .long 1056004842 # 0x3ef15aea + .long 2986287417 # 0xb1ff2139 + .long 1065353216 # 0x3f800000 + .long 3188000746 # 0xbe0507ea + .long 1056726311 # 0x3efc5d27 + .long 2978016425 # 0xb180eca9 + .long 1065353216 # 0x3f800000 + .long 3188830103 # 0xbe11af97 + .long 1057201213 # 0x3f039c3d + .long 2992349186 # 0xb25ba002 + .long 1065353216 # 0x3f800000 + .long 3189694133 # 0xbe1edeb5 + .long 1057551771 # 0x3f08f59b + .long 2998815566 # 0xb2be4b4e + .long 1065353216 # 0x3f800000 + .long 3190592315 # 0xbe2c933b + .long 1057896922 # 0x3f0e39da + .long 2991207143 # 0xb24a32e7 + .long 1065353216 # 0x3f800000 + .long 3191524108 # 0xbe3acb0c + .long 1058236458 # 0x3f13682a + .long 852349230 # 0x32cdd12e + .long 1065353216 # 0x3f800000 + .long 3192488951 # 0xbe4983f7 + .long 1058570176 # 0x3f187fc0 + .long 2982650867 # 0xb1c7a3f3 + .long 1065353216 # 0x3f800000 + .long 3193486263 # 0xbe58bbb7 + .long 1058897873 # 0x3f1d7fd1 + .long 848430348 # 0x3292050c + .long 1065353216 # 0x3f800000 + .long 3194515443 # 0xbe686ff3 + .long 1059219353 # 0x3f226799 + .long 841032635 # 0x322123bb + .long 1065353216 # 0x3f800000 + .long 3195575871 # 0xbe789e3f + .long 1059534422 # 0x3f273656 + .long 2986574659 # 0xb2038343 + .long 1065353216 # 0x3f800000 + .long 3196363278 # 0xbe84a20e + .long 1059842890 # 0x3f2beb4a + .long 2998350134 # 0xb2b73136 + .long 1065353216 # 0x3f800000 + .long 3196923773 # 0xbe8d2f7d + .long 1060144571 # 0x3f3085bb + .long 2997759282 # 0xb2ae2d32 + .long 1065353216 # 0x3f800000 + .long 3197498906 # 0xbe95f61a + .long 1060439283 # 0x3f3504f3 + .long 844097402 # 0x324fe77a + .long 1065353216 # 0x3f800000 + .long 1044518635 # 0x3e4216eb + .long 1060726850 # 0x3f396842 + .long 2994798599 # 0xb2810007 + .long 1056964608 # 0x3f000000 + .long 1043311911 # 0x3e2fad27 + .long 1061007097 # 0x3f3daef9 + .long 832220140 # 0x319aabec + .long 1056964608 # 0x3f000000 + .long 1042078039 # 0x3e1cd957 + .long 1061279856 # 0x3f41d870 + .long 851442039 # 0x32bff977 + .long 1056964608 # 0x3f000000 + .long 1040817765 # 0x3e099e65 + .long 1061544963 # 0x3f45e403 + .long 850481524 # 0x32b15174 + .long 1056964608 # 0x3f000000 + .long 1038876298 # 0x3debfe8a + .long 1061802258 # 0x3f49d112 + .long 848897600 # 0x32992640 + .long 1056964608 # 0x3f000000 + .long 1036254719 # 0x3dc3fdff + .long 1062051586 # 0x3f4d9f02 + .long 847147240 # 0x327e70e8 + .long 1056964608 # 0x3f000000 + .long 1033584979 # 0x3d9b4153 + .long 1062292797 # 0x3f514d3d + .long 806113028 # 0x300c4f04 + .long 1056964608 # 0x3f000000 + .long 1029938589 # 0x3d639d9d + .long 1062525745 # 0x3f54db31 + .long 848357914 # 0x3290ea1a + .long 1056964608 # 0x3f000000 + .long 1024416170 # 0x3d0f59aa + .long 1062750291 # 0x3f584853 + .long 2994560960 # 0xb27d5fc0 + .long 1056964608 # 0x3f000000 + .long 1013387058 # 0x3c670f32 + .long 1062966298 # 0x3f5b941a + .long 841166280 # 0x32232dc8 + .long 1056964608 # 0x3f000000 + .long 3152590408 # 0xbbe8b648 + .long 1063173637 # 0x3f5ebe05 + .long 851900755 # 0x32c6f953 + .long 1056964608 # 0x3f000000 + .long 3169472868 # 0xbcea5164 + .long 1063372184 # 0x3f61c598 + .long 3001545765 # 0xb2e7f425 + .long 1056964608 # 0x3f000000 + .long 3176031322 # 0xbd4e645a + .long 1063561817 # 0x3f64aa59 + .long 823789818 # 0x311a08fa + .long 1056964608 # 0x3f000000 + .long 3180617215 # 0xbd945dff + .long 1063742424 # 0x3f676bd8 + .long 2998678409 # 0xb2bc3389 + .long 1056964608 # 0x3f000000 + .long 3183612120 # 0xbdc210d8 + .long 1063913895 # 0x3f6a09a7 + .long 3001754476 # 0xb2eb236c + .long 1056964608 # 0x3f000000 + .long 3186639787 # 0xbdf043ab + .long 1064076126 # 0x3f6c835e + .long 854796500 # 0x32f328d4 + .long 1056964608 # 0x3f000000 + .long 3188684717 # 0xbe0f77ad + .long 1064229022 # 0x3f6ed89e + .long 2995991516 # 0xb29333dc + .long 1056964608 # 0x3f000000 + .long 1035072335 # 0x3db1f34f + .long 1064372488 # 0x3f710908 + .long 840880349 # 0x321ed0dd + .long 1048576000 # 0x3e800000 + .long 1031957395 # 0x3d826b93 + .long 1064506439 # 0x3f731447 + .long 851742225 # 0x32c48e11 + .long 1048576000 # 0x3e800000 + .long 1025835404 # 0x3d25018c + .long 1064630795 # 0x3f74fa0b + .long 2996018466 # 0xb2939d22 + .long 1048576000 # 0x3e800000 + .long 1015605553 # 0x3c88e931 + .long 1064745479 # 0x3f76ba07 + .long 846006572 # 0x326d092c + .long 1048576000 # 0x3e800000 + .long 3152414341 # 0xbbe60685 + .long 1064850424 # 0x3f7853f8 + .long 2987244005 # 0xb20db9e5 + .long 1048576000 # 0x3e800000 + .long 3170705253 # 0xbcfd1f65 + .long 1064945565 # 0x3f79c79d + .long 851856985 # 0x32c64e59 + .long 1048576000 # 0x3e800000 + .long 3177244920 # 0xbd60e8f8 + .long 1065030846 # 0x3f7b14be + .long 855602635 # 0x32ff75cb + .long 1048576000 # 0x3e800000 + .long 1027359369 # 0x3d3c4289 + .long 1065106216 # 0x3f7c3b28 + .long 2989610635 # 0xb231d68b + .long 1040187392 # 0x3e000000 + .long 1018299420 # 0x3cb2041c + .long 1065171628 # 0x3f7d3aac + .long 2969000681 # 0xb0f75ae9 + .long 1040187392 # 0x3e000000 + .long 3140071849 # 0xbb29b1a9 + .long 1065227044 # 0x3f7e1324 + .long 3002197507 # 0xb2f1e603 + .long 1040187392 # 0x3e000000 + .long 3168602920 # 0xbcdd0b28 + .long 1065272429 # 0x3f7ec46d + .long 838093129 # 0x31f44949 + .long 1040187392 # 0x3e000000 + .long 1010124837 # 0x3c354825 + .long 1065307757 # 0x3f7f4e6d + .long 852498564 # 0x32d01884 + .long 1031798784 # 0x3d800000 + .long 3160150850 # 0xbc5c1342 + .long 1065333007 # 0x3f7fb10f + .long 836655967 # 0x31de5b5f + .long 1031798784 # 0x3d800000 + .long 3151746369 # 0xbbdbd541 + .long 1065348163 # 0x3f7fec43 + .long 814009613 # 0x3084cd0d + .long 1023410176 # 0x3d000000 + .zero 4 + .long 1065353216 # 0x3f800000 + .zero 4 + .zero 4 + .long 1004262721 # 0x3bdbd541 + .long 1065348163 # 0x3f7fec43 + .long 814009613 # 0x3084cd0d + .long 3170893824 # 0xbd000000 + .long 1012667202 # 0x3c5c1342 + .long 1065333007 # 0x3f7fb10f + .long 836655967 # 0x31de5b5f + .long 3179282432 # 0xbd800000 + .long 3157608485 # 0xbc354825 + .long 1065307757 # 0x3f7f4e6d + .long 852498564 # 0x32d01884 + .long 3179282432 # 0xbd800000 + .long 1021119272 # 0x3cdd0b28 + .long 1065272429 # 0x3f7ec46d + .long 838093129 # 0x31f44949 + .long 3187671040 # 0xbe000000 + .long 992588201 # 0x3b29b1a9 + .long 1065227044 # 0x3f7e1324 + .long 3002197507 # 0xb2f1e603 + .long 3187671040 # 0xbe000000 + .long 3165783068 # 0xbcb2041c + .long 1065171628 # 0x3f7d3aac + .long 2969000681 # 0xb0f75ae9 + .long 3187671040 # 0xbe000000 + .long 3174843017 # 0xbd3c4289 + .long 1065106216 # 0x3f7c3b28 + .long 2989610635 # 0xb231d68b + .long 3187671040 # 0xbe000000 + .long 1029761272 # 0x3d60e8f8 + .long 1065030846 # 0x3f7b14be + .long 855602635 # 0x32ff75cb + .long 3196059648 # 0xbe800000 + .long 1023221605 # 0x3cfd1f65 + .long 1064945565 # 0x3f79c79d + .long 851856985 # 0x32c64e59 + .long 3196059648 # 0xbe800000 + .long 1004930693 # 0x3be60685 + .long 1064850424 # 0x3f7853f8 + .long 2987244005 # 0xb20db9e5 + .long 3196059648 # 0xbe800000 + .long 3163089201 # 0xbc88e931 + .long 1064745479 # 0x3f76ba07 + .long 846006572 # 0x326d092c + .long 3196059648 # 0xbe800000 + .long 3173319052 # 0xbd25018c + .long 1064630795 # 0x3f74fa0b + .long 2996018466 # 0xb2939d22 + .long 3196059648 # 0xbe800000 + .long 3179441043 # 0xbd826b93 + .long 1064506439 # 0x3f731447 + .long 851742225 # 0x32c48e11 + .long 3196059648 # 0xbe800000 + .long 3182555983 # 0xbdb1f34f + .long 1064372488 # 0x3f710908 + .long 840880349 # 0x321ed0dd + .long 3196059648 # 0xbe800000 + .long 1041201069 # 0x3e0f77ad + .long 1064229022 # 0x3f6ed89e + .long 2995991516 # 0xb29333dc + .long 3204448256 # 0xbf000000 + .long 1039156139 # 0x3df043ab + .long 1064076126 # 0x3f6c835e + .long 854796500 # 0x32f328d4 + .long 3204448256 # 0xbf000000 + .long 1036128472 # 0x3dc210d8 + .long 1063913895 # 0x3f6a09a7 + .long 3001754476 # 0xb2eb236c + .long 3204448256 # 0xbf000000 + .long 1033133567 # 0x3d945dff + .long 1063742424 # 0x3f676bd8 + .long 2998678409 # 0xb2bc3389 + .long 3204448256 # 0xbf000000 + .long 1028547674 # 0x3d4e645a + .long 1063561817 # 0x3f64aa59 + .long 823789818 # 0x311a08fa + .long 3204448256 # 0xbf000000 + .long 1021989220 # 0x3cea5164 + .long 1063372184 # 0x3f61c598 + .long 3001545765 # 0xb2e7f425 + .long 3204448256 # 0xbf000000 + .long 1005106760 # 0x3be8b648 + .long 1063173637 # 0x3f5ebe05 + .long 851900755 # 0x32c6f953 + .long 3204448256 # 0xbf000000 + .long 3160870706 # 0xbc670f32 + .long 1062966298 # 0x3f5b941a + .long 841166280 # 0x32232dc8 + .long 3204448256 # 0xbf000000 + .long 3171899818 # 0xbd0f59aa + .long 1062750291 # 0x3f584853 + .long 2994560960 # 0xb27d5fc0 + .long 3204448256 # 0xbf000000 + .long 3177422237 # 0xbd639d9d + .long 1062525745 # 0x3f54db31 + .long 848357914 # 0x3290ea1a + .long 3204448256 # 0xbf000000 + .long 3181068627 # 0xbd9b4153 + .long 1062292797 # 0x3f514d3d + .long 806113028 # 0x300c4f04 + .long 3204448256 # 0xbf000000 + .long 3183738367 # 0xbdc3fdff + .long 1062051586 # 0x3f4d9f02 + .long 847147240 # 0x327e70e8 + .long 3204448256 # 0xbf000000 + .long 3186359946 # 0xbdebfe8a + .long 1061802258 # 0x3f49d112 + .long 848897600 # 0x32992640 + .long 3204448256 # 0xbf000000 + .long 3188301413 # 0xbe099e65 + .long 1061544963 # 0x3f45e403 + .long 850481524 # 0x32b15174 + .long 3204448256 # 0xbf000000 + .long 3189561687 # 0xbe1cd957 + .long 1061279856 # 0x3f41d870 + .long 851442039 # 0x32bff977 + .long 3204448256 # 0xbf000000 + .long 3190795559 # 0xbe2fad27 + .long 1061007097 # 0x3f3daef9 + .long 832220140 # 0x319aabec + .long 3204448256 # 0xbf000000 + .long 3192002283 # 0xbe4216eb + .long 1060726850 # 0x3f396842 + .long 2994798599 # 0xb2810007 + .long 3204448256 # 0xbf000000 + .long 1050015258 # 0x3e95f61a + .long 1060439283 # 0x3f3504f3 + .long 844097402 # 0x324fe77a + .long 3212836864 # 0xbf800000 + .long 1049440125 # 0x3e8d2f7d + .long 1060144571 # 0x3f3085bb + .long 2997759282 # 0xb2ae2d32 + .long 3212836864 # 0xbf800000 + .long 1048879630 # 0x3e84a20e + .long 1059842890 # 0x3f2beb4a + .long 2998350134 # 0xb2b73136 + .long 3212836864 # 0xbf800000 + .long 1048092223 # 0x3e789e3f + .long 1059534422 # 0x3f273656 + .long 2986574659 # 0xb2038343 + .long 3212836864 # 0xbf800000 + .long 1047031795 # 0x3e686ff3 + .long 1059219353 # 0x3f226799 + .long 841032635 # 0x322123bb + .long 3212836864 # 0xbf800000 + .long 1046002615 # 0x3e58bbb7 + .long 1058897873 # 0x3f1d7fd1 + .long 848430348 # 0x3292050c + .long 3212836864 # 0xbf800000 + .long 1045005303 # 0x3e4983f7 + .long 1058570176 # 0x3f187fc0 + .long 2982650867 # 0xb1c7a3f3 + .long 3212836864 # 0xbf800000 + .long 1044040460 # 0x3e3acb0c + .long 1058236458 # 0x3f13682a + .long 852349230 # 0x32cdd12e + .long 3212836864 # 0xbf800000 + .long 1043108667 # 0x3e2c933b + .long 1057896922 # 0x3f0e39da + .long 2991207143 # 0xb24a32e7 + .long 3212836864 # 0xbf800000 + .long 1042210485 # 0x3e1edeb5 + .long 1057551771 # 0x3f08f59b + .long 2998815566 # 0xb2be4b4e + .long 3212836864 # 0xbf800000 + .long 1041346455 # 0x3e11af97 + .long 1057201213 # 0x3f039c3d + .long 2992349186 # 0xb25ba002 + .long 3212836864 # 0xbf800000 + .long 1040517098 # 0x3e0507ea + .long 1056726311 # 0x3efc5d27 + .long 2978016425 # 0xb180eca9 + .long 3212836864 # 0xbf800000 + .long 1039258436 # 0x3df1d344 + .long 1056004842 # 0x3ef15aea + .long 2986287417 # 0xb1ff2139 + .long 3212836864 # 0xbf800000 + .long 1037741368 # 0x3ddaad38 + .long 1055273845 # 0x3ee63375 + .long 2983839604 # 0xb1d9c774 + .long 3212836864 # 0xbf800000 + .long 1036296515 # 0x3dc4a143 + .long 1054533760 # 0x3edae880 + .long 840832460 # 0x321e15cc + .long 3212836864 # 0xbf800000 + .long 1034924748 # 0x3dafb2cc + .long 1053785034 # 0x3ecf7bca + .long 829045603 # 0x316a3b63 + .long 3212836864 # 0xbf800000 + .long 1033626892 # 0x3d9be50c + .long 1053028117 # 0x3ec3ef15 + .long 836097324 # 0x31d5d52c + .long 3212836864 # 0xbf800000 + .long 1032403730 # 0x3d893b12 + .long 1052263466 # 0x3eb8442a + .long 2993707942 # 0xb2705ba6 + .long 3212836864 # 0xbf800000 + .long 1030713214 # 0x3d6f6f7e + .long 1051491540 # 0x3eac7cd4 + .long 2988789250 # 0xb2254e02 + .long 3212836864 # 0xbf800000 + .long 1028569994 # 0x3d4ebb8a + .long 1050712805 # 0x3ea09ae5 + .long 2990442912 # 0xb23e89a0 + .long 3212836864 # 0xbf800000 + .long 1026580309 # 0x3d305f55 + .long 1049927729 # 0x3e94a031 + .long 846027248 # 0x326d59f0 + .long 3212836864 # 0xbf800000 + .long 1024745356 # 0x3d145f8c + .long 1049136787 # 0x3e888e93 + .long 824999326 # 0x312c7d9e + .long 3212836864 # 0xbf800000 + .long 1022722308 # 0x3cf58104 + .long 1048104908 # 0x3e78cfcc + .long 2971391005 # 0xb11bd41d + .long 3212836864 # 0xbf800000 + .long 1019677780 # 0x3cc70c54 + .long 1046502419 # 0x3e605c13 + .long 833086710 # 0x31a7e4f6 + .long 3212836864 # 0xbf800000 + .long 1016948784 # 0x3c9d6830 + .long 1044891074 # 0x3e47c5c2 + .long 2967836285 # 0xb0e5967d + .long 3212836864 # 0xbf800000 + .long 1014052363 # 0x3c71360b + .long 1043271842 # 0x3e2f10a2 + .long 823224313 # 0x311167f9 + .long 3212836864 # 0xbf800000 + .long 1009865986 # 0x3c315502 + .long 1041645699 # 0x3e164083 + .long 837346836 # 0x31e8e614 + .long 3212836864 # 0xbf800000 + .long 1006005820 # 0x3bf66e3c + .long 1039839859 # 0x3dfab273 + .long 2970970319 # 0xb11568cf + .long 3212836864 # 0xbf800000 + .long 1000196465 # 0x3b9dc971 + .long 1036565814 # 0x3dc8bd36 + .long 2960495349 # 0xb07592f5 + .long 3212836864 # 0xbf800000 + .long 993104536 # 0x3b319298 + .long 1033283845 # 0x3d96a905 + .long 2975014497 # 0xb1531e61 + .long 3212836864 # 0xbf800000 + .long 983425480 # 0x3a9de1c8 + .long 1028193072 # 0x3d48fb30 + .long 2968461951 # 0xb0ef227f + .long 3212836864 # 0xbf800000 + .long 966649823 # 0x399de7df + .long 1019808432 # 0x3cc90ab0 + .long 2953169304 # 0xb005c998 + .long 3212836864 # 0xbf800000 + .zero 4 + .zero 4 + .zero 4 + .long 3212836864 # 0xbf800000 + .long 966649823 # 0x399de7df + .long 3167292080 # 0xbcc90ab0 + .long 805685656 # 0x3005c998 + .long 3212836864 # 0xbf800000 + .long 983425480 # 0x3a9de1c8 + .long 3175676720 # 0xbd48fb30 + .long 820978303 # 0x30ef227f + .long 3212836864 # 0xbf800000 + .long 993104536 # 0x3b319298 + .long 3180767493 # 0xbd96a905 + .long 827530849 # 0x31531e61 + .long 3212836864 # 0xbf800000 + .long 1000196465 # 0x3b9dc971 + .long 3184049462 # 0xbdc8bd36 + .long 813011701 # 0x307592f5 + .long 3212836864 # 0xbf800000 + .long 1006005820 # 0x3bf66e3c + .long 3187323507 # 0xbdfab273 + .long 823486671 # 0x311568cf + .long 3212836864 # 0xbf800000 + .long 1009865986 # 0x3c315502 + .long 3189129347 # 0xbe164083 + .long 2984830484 # 0xb1e8e614 + .long 3212836864 # 0xbf800000 + .long 1014052363 # 0x3c71360b + .long 3190755490 # 0xbe2f10a2 + .long 2970707961 # 0xb11167f9 + .long 3212836864 # 0xbf800000 + .long 1016948784 # 0x3c9d6830 + .long 3192374722 # 0xbe47c5c2 + .long 820352637 # 0x30e5967d + .long 3212836864 # 0xbf800000 + .long 1019677780 # 0x3cc70c54 + .long 3193986067 # 0xbe605c13 + .long 2980570358 # 0xb1a7e4f6 + .long 3212836864 # 0xbf800000 + .long 1022722308 # 0x3cf58104 + .long 3195588556 # 0xbe78cfcc + .long 823907357 # 0x311bd41d + .long 3212836864 # 0xbf800000 + .long 1024745356 # 0x3d145f8c + .long 3196620435 # 0xbe888e93 + .long 2972482974 # 0xb12c7d9e + .long 3212836864 # 0xbf800000 + .long 1026580309 # 0x3d305f55 + .long 3197411377 # 0xbe94a031 + .long 2993510896 # 0xb26d59f0 + .long 3212836864 # 0xbf800000 + .long 1028569994 # 0x3d4ebb8a + .long 3198196453 # 0xbea09ae5 + .long 842959264 # 0x323e89a0 + .long 3212836864 # 0xbf800000 + .long 1030713214 # 0x3d6f6f7e + .long 3198975188 # 0xbeac7cd4 + .long 841305602 # 0x32254e02 + .long 3212836864 # 0xbf800000 + .long 1032403730 # 0x3d893b12 + .long 3199747114 # 0xbeb8442a + .long 846224294 # 0x32705ba6 + .long 3212836864 # 0xbf800000 + .long 1033626892 # 0x3d9be50c + .long 3200511765 # 0xbec3ef15 + .long 2983580972 # 0xb1d5d52c + .long 3212836864 # 0xbf800000 + .long 1034924748 # 0x3dafb2cc + .long 3201268682 # 0xbecf7bca + .long 2976529251 # 0xb16a3b63 + .long 3212836864 # 0xbf800000 + .long 1036296515 # 0x3dc4a143 + .long 3202017408 # 0xbedae880 + .long 2988316108 # 0xb21e15cc + .long 3212836864 # 0xbf800000 + .long 1037741368 # 0x3ddaad38 + .long 3202757493 # 0xbee63375 + .long 836355956 # 0x31d9c774 + .long 3212836864 # 0xbf800000 + .long 1039258436 # 0x3df1d344 + .long 3203488490 # 0xbef15aea + .long 838803769 # 0x31ff2139 + .long 3212836864 # 0xbf800000 + .long 1040517098 # 0x3e0507ea + .long 3204209959 # 0xbefc5d27 + .long 830532777 # 0x3180eca9 + .long 3212836864 # 0xbf800000 + .long 1041346455 # 0x3e11af97 + .long 3204684861 # 0xbf039c3d + .long 844865538 # 0x325ba002 + .long 3212836864 # 0xbf800000 + .long 1042210485 # 0x3e1edeb5 + .long 3205035419 # 0xbf08f59b + .long 851331918 # 0x32be4b4e + .long 3212836864 # 0xbf800000 + .long 1043108667 # 0x3e2c933b + .long 3205380570 # 0xbf0e39da + .long 843723495 # 0x324a32e7 + .long 3212836864 # 0xbf800000 + .long 1044040460 # 0x3e3acb0c + .long 3205720106 # 0xbf13682a + .long 2999832878 # 0xb2cdd12e + .long 3212836864 # 0xbf800000 + .long 1045005303 # 0x3e4983f7 + .long 3206053824 # 0xbf187fc0 + .long 835167219 # 0x31c7a3f3 + .long 3212836864 # 0xbf800000 + .long 1046002615 # 0x3e58bbb7 + .long 3206381521 # 0xbf1d7fd1 + .long 2995913996 # 0xb292050c + .long 3212836864 # 0xbf800000 + .long 1047031795 # 0x3e686ff3 + .long 3206703001 # 0xbf226799 + .long 2988516283 # 0xb22123bb + .long 3212836864 # 0xbf800000 + .long 1048092223 # 0x3e789e3f + .long 3207018070 # 0xbf273656 + .long 839091011 # 0x32038343 + .long 3212836864 # 0xbf800000 + .long 1048879630 # 0x3e84a20e + .long 3207326538 # 0xbf2beb4a + .long 850866486 # 0x32b73136 + .long 3212836864 # 0xbf800000 + .long 1049440125 # 0x3e8d2f7d + .long 3207628219 # 0xbf3085bb + .long 850275634 # 0x32ae2d32 + .long 3212836864 # 0xbf800000 + .long 1050015258 # 0x3e95f61a + .long 3207922931 # 0xbf3504f3 + .long 2991581050 # 0xb24fe77a + .long 3212836864 # 0xbf800000 + .long 3192002283 # 0xbe4216eb + .long 3208210498 # 0xbf396842 + .long 847314951 # 0x32810007 + .long 3204448256 # 0xbf000000 + .long 3190795559 # 0xbe2fad27 + .long 3208490745 # 0xbf3daef9 + .long 2979703788 # 0xb19aabec + .long 3204448256 # 0xbf000000 + .long 3189561687 # 0xbe1cd957 + .long 3208763504 # 0xbf41d870 + .long 2998925687 # 0xb2bff977 + .long 3204448256 # 0xbf000000 + .long 3188301413 # 0xbe099e65 + .long 3209028611 # 0xbf45e403 + .long 2997965172 # 0xb2b15174 + .long 3204448256 # 0xbf000000 + .long 3186359946 # 0xbdebfe8a + .long 3209285906 # 0xbf49d112 + .long 2996381248 # 0xb2992640 + .long 3204448256 # 0xbf000000 + .long 3183738367 # 0xbdc3fdff + .long 3209535234 # 0xbf4d9f02 + .long 2994630888 # 0xb27e70e8 + .long 3204448256 # 0xbf000000 + .long 3181068627 # 0xbd9b4153 + .long 3209776445 # 0xbf514d3d + .long 2953596676 # 0xb00c4f04 + .long 3204448256 # 0xbf000000 + .long 3177422237 # 0xbd639d9d + .long 3210009393 # 0xbf54db31 + .long 2995841562 # 0xb290ea1a + .long 3204448256 # 0xbf000000 + .long 3171899818 # 0xbd0f59aa + .long 3210233939 # 0xbf584853 + .long 847077312 # 0x327d5fc0 + .long 3204448256 # 0xbf000000 + .long 3160870706 # 0xbc670f32 + .long 3210449946 # 0xbf5b941a + .long 2988649928 # 0xb2232dc8 + .long 3204448256 # 0xbf000000 + .long 1005106760 # 0x3be8b648 + .long 3210657285 # 0xbf5ebe05 + .long 2999384403 # 0xb2c6f953 + .long 3204448256 # 0xbf000000 + .long 1021989220 # 0x3cea5164 + .long 3210855832 # 0xbf61c598 + .long 854062117 # 0x32e7f425 + .long 3204448256 # 0xbf000000 + .long 1028547674 # 0x3d4e645a + .long 3211045465 # 0xbf64aa59 + .long 2971273466 # 0xb11a08fa + .long 3204448256 # 0xbf000000 + .long 1033133567 # 0x3d945dff + .long 3211226072 # 0xbf676bd8 + .long 851194761 # 0x32bc3389 + .long 3204448256 # 0xbf000000 + .long 1036128472 # 0x3dc210d8 + .long 3211397543 # 0xbf6a09a7 + .long 854270828 # 0x32eb236c + .long 3204448256 # 0xbf000000 + .long 1039156139 # 0x3df043ab + .long 3211559774 # 0xbf6c835e + .long 3002280148 # 0xb2f328d4 + .long 3204448256 # 0xbf000000 + .long 1041201069 # 0x3e0f77ad + .long 3211712670 # 0xbf6ed89e + .long 848507868 # 0x329333dc + .long 3204448256 # 0xbf000000 + .long 3182555983 # 0xbdb1f34f + .long 3211856136 # 0xbf710908 + .long 2988363997 # 0xb21ed0dd + .long 3196059648 # 0xbe800000 + .long 3179441043 # 0xbd826b93 + .long 3211990087 # 0xbf731447 + .long 2999225873 # 0xb2c48e11 + .long 3196059648 # 0xbe800000 + .long 3173319052 # 0xbd25018c + .long 3212114443 # 0xbf74fa0b + .long 848534818 # 0x32939d22 + .long 3196059648 # 0xbe800000 + .long 3163089201 # 0xbc88e931 + .long 3212229127 # 0xbf76ba07 + .long 2993490220 # 0xb26d092c + .long 3196059648 # 0xbe800000 + .long 1004930693 # 0x3be60685 + .long 3212334072 # 0xbf7853f8 + .long 839760357 # 0x320db9e5 + .long 3196059648 # 0xbe800000 + .long 1023221605 # 0x3cfd1f65 + .long 3212429213 # 0xbf79c79d + .long 2999340633 # 0xb2c64e59 + .long 3196059648 # 0xbe800000 + .long 1029761272 # 0x3d60e8f8 + .long 3212514494 # 0xbf7b14be + .long 3003086283 # 0xb2ff75cb + .long 3196059648 # 0xbe800000 + .long 3174843017 # 0xbd3c4289 + .long 3212589864 # 0xbf7c3b28 + .long 842126987 # 0x3231d68b + .long 3187671040 # 0xbe000000 + .long 3165783068 # 0xbcb2041c + .long 3212655276 # 0xbf7d3aac + .long 821517033 # 0x30f75ae9 + .long 3187671040 # 0xbe000000 + .long 992588201 # 0x3b29b1a9 + .long 3212710692 # 0xbf7e1324 + .long 854713859 # 0x32f1e603 + .long 3187671040 # 0xbe000000 + .long 1021119272 # 0x3cdd0b28 + .long 3212756077 # 0xbf7ec46d + .long 2985576777 # 0xb1f44949 + .long 3187671040 # 0xbe000000 + .long 3157608485 # 0xbc354825 + .long 3212791405 # 0xbf7f4e6d + .long 2999982212 # 0xb2d01884 + .long 3179282432 # 0xbd800000 + .long 1012667202 # 0x3c5c1342 + .long 3212816655 # 0xbf7fb10f + .long 2984139615 # 0xb1de5b5f + .long 3179282432 # 0xbd800000 + .long 1004262721 # 0x3bdbd541 + .long 3212831811 # 0xbf7fec43 + .long 2961493261 # 0xb084cd0d + .long 3170893824 # 0xbd000000 + .zero 4 + .long 3212836864 # 0xbf800000 + .zero 4 + .zero 4 + .long 3151746369 # 0xbbdbd541 + .long 3212831811 # 0xbf7fec43 + .long 2961493261 # 0xb084cd0d + .long 1023410176 # 0x3d000000 + .long 3160150850 # 0xbc5c1342 + .long 3212816655 # 0xbf7fb10f + .long 2984139615 # 0xb1de5b5f + .long 1031798784 # 0x3d800000 + .long 1010124837 # 0x3c354825 + .long 3212791405 # 0xbf7f4e6d + .long 2999982212 # 0xb2d01884 + .long 1031798784 # 0x3d800000 + .long 3168602920 # 0xbcdd0b28 + .long 3212756077 # 0xbf7ec46d + .long 2985576777 # 0xb1f44949 + .long 1040187392 # 0x3e000000 + .long 3140071849 # 0xbb29b1a9 + .long 3212710692 # 0xbf7e1324 + .long 854713859 # 0x32f1e603 + .long 1040187392 # 0x3e000000 + .long 1018299420 # 0x3cb2041c + .long 3212655276 # 0xbf7d3aac + .long 821517033 # 0x30f75ae9 + .long 1040187392 # 0x3e000000 + .long 1027359369 # 0x3d3c4289 + .long 3212589864 # 0xbf7c3b28 + .long 842126987 # 0x3231d68b + .long 1040187392 # 0x3e000000 + .long 3177244920 # 0xbd60e8f8 + .long 3212514494 # 0xbf7b14be + .long 3003086283 # 0xb2ff75cb + .long 1048576000 # 0x3e800000 + .long 3170705253 # 0xbcfd1f65 + .long 3212429213 # 0xbf79c79d + .long 2999340633 # 0xb2c64e59 + .long 1048576000 # 0x3e800000 + .long 3152414341 # 0xbbe60685 + .long 3212334072 # 0xbf7853f8 + .long 839760357 # 0x320db9e5 + .long 1048576000 # 0x3e800000 + .long 1015605553 # 0x3c88e931 + .long 3212229127 # 0xbf76ba07 + .long 2993490220 # 0xb26d092c + .long 1048576000 # 0x3e800000 + .long 1025835404 # 0x3d25018c + .long 3212114443 # 0xbf74fa0b + .long 848534818 # 0x32939d22 + .long 1048576000 # 0x3e800000 + .long 1031957395 # 0x3d826b93 + .long 3211990087 # 0xbf731447 + .long 2999225873 # 0xb2c48e11 + .long 1048576000 # 0x3e800000 + .long 1035072335 # 0x3db1f34f + .long 3211856136 # 0xbf710908 + .long 2988363997 # 0xb21ed0dd + .long 1048576000 # 0x3e800000 + .long 3188684717 # 0xbe0f77ad + .long 3211712670 # 0xbf6ed89e + .long 848507868 # 0x329333dc + .long 1056964608 # 0x3f000000 + .long 3186639787 # 0xbdf043ab + .long 3211559774 # 0xbf6c835e + .long 3002280148 # 0xb2f328d4 + .long 1056964608 # 0x3f000000 + .long 3183612120 # 0xbdc210d8 + .long 3211397543 # 0xbf6a09a7 + .long 854270828 # 0x32eb236c + .long 1056964608 # 0x3f000000 + .long 3180617215 # 0xbd945dff + .long 3211226072 # 0xbf676bd8 + .long 851194761 # 0x32bc3389 + .long 1056964608 # 0x3f000000 + .long 3176031322 # 0xbd4e645a + .long 3211045465 # 0xbf64aa59 + .long 2971273466 # 0xb11a08fa + .long 1056964608 # 0x3f000000 + .long 3169472868 # 0xbcea5164 + .long 3210855832 # 0xbf61c598 + .long 854062117 # 0x32e7f425 + .long 1056964608 # 0x3f000000 + .long 3152590408 # 0xbbe8b648 + .long 3210657285 # 0xbf5ebe05 + .long 2999384403 # 0xb2c6f953 + .long 1056964608 # 0x3f000000 + .long 1013387058 # 0x3c670f32 + .long 3210449946 # 0xbf5b941a + .long 2988649928 # 0xb2232dc8 + .long 1056964608 # 0x3f000000 + .long 1024416170 # 0x3d0f59aa + .long 3210233939 # 0xbf584853 + .long 847077312 # 0x327d5fc0 + .long 1056964608 # 0x3f000000 + .long 1029938589 # 0x3d639d9d + .long 3210009393 # 0xbf54db31 + .long 2995841562 # 0xb290ea1a + .long 1056964608 # 0x3f000000 + .long 1033584979 # 0x3d9b4153 + .long 3209776445 # 0xbf514d3d + .long 2953596676 # 0xb00c4f04 + .long 1056964608 # 0x3f000000 + .long 1036254719 # 0x3dc3fdff + .long 3209535234 # 0xbf4d9f02 + .long 2994630888 # 0xb27e70e8 + .long 1056964608 # 0x3f000000 + .long 1038876298 # 0x3debfe8a + .long 3209285906 # 0xbf49d112 + .long 2996381248 # 0xb2992640 + .long 1056964608 # 0x3f000000 + .long 1040817765 # 0x3e099e65 + .long 3209028611 # 0xbf45e403 + .long 2997965172 # 0xb2b15174 + .long 1056964608 # 0x3f000000 + .long 1042078039 # 0x3e1cd957 + .long 3208763504 # 0xbf41d870 + .long 2998925687 # 0xb2bff977 + .long 1056964608 # 0x3f000000 + .long 1043311911 # 0x3e2fad27 + .long 3208490745 # 0xbf3daef9 + .long 2979703788 # 0xb19aabec + .long 1056964608 # 0x3f000000 + .long 1044518635 # 0x3e4216eb + .long 3208210498 # 0xbf396842 + .long 847314951 # 0x32810007 + .long 1056964608 # 0x3f000000 + .long 3197498906 # 0xbe95f61a + .long 3207922931 # 0xbf3504f3 + .long 2991581050 # 0xb24fe77a + .long 1065353216 # 0x3f800000 + .long 3196923773 # 0xbe8d2f7d + .long 3207628219 # 0xbf3085bb + .long 850275634 # 0x32ae2d32 + .long 1065353216 # 0x3f800000 + .long 3196363278 # 0xbe84a20e + .long 3207326538 # 0xbf2beb4a + .long 850866486 # 0x32b73136 + .long 1065353216 # 0x3f800000 + .long 3195575871 # 0xbe789e3f + .long 3207018070 # 0xbf273656 + .long 839091011 # 0x32038343 + .long 1065353216 # 0x3f800000 + .long 3194515443 # 0xbe686ff3 + .long 3206703001 # 0xbf226799 + .long 2988516283 # 0xb22123bb + .long 1065353216 # 0x3f800000 + .long 3193486263 # 0xbe58bbb7 + .long 3206381521 # 0xbf1d7fd1 + .long 2995913996 # 0xb292050c + .long 1065353216 # 0x3f800000 + .long 3192488951 # 0xbe4983f7 + .long 3206053824 # 0xbf187fc0 + .long 835167219 # 0x31c7a3f3 + .long 1065353216 # 0x3f800000 + .long 3191524108 # 0xbe3acb0c + .long 3205720106 # 0xbf13682a + .long 2999832878 # 0xb2cdd12e + .long 1065353216 # 0x3f800000 + .long 3190592315 # 0xbe2c933b + .long 3205380570 # 0xbf0e39da + .long 843723495 # 0x324a32e7 + .long 1065353216 # 0x3f800000 + .long 3189694133 # 0xbe1edeb5 + .long 3205035419 # 0xbf08f59b + .long 851331918 # 0x32be4b4e + .long 1065353216 # 0x3f800000 + .long 3188830103 # 0xbe11af97 + .long 3204684861 # 0xbf039c3d + .long 844865538 # 0x325ba002 + .long 1065353216 # 0x3f800000 + .long 3188000746 # 0xbe0507ea + .long 3204209959 # 0xbefc5d27 + .long 830532777 # 0x3180eca9 + .long 1065353216 # 0x3f800000 + .long 3186742084 # 0xbdf1d344 + .long 3203488490 # 0xbef15aea + .long 838803769 # 0x31ff2139 + .long 1065353216 # 0x3f800000 + .long 3185225016 # 0xbddaad38 + .long 3202757493 # 0xbee63375 + .long 836355956 # 0x31d9c774 + .long 1065353216 # 0x3f800000 + .long 3183780163 # 0xbdc4a143 + .long 3202017408 # 0xbedae880 + .long 2988316108 # 0xb21e15cc + .long 1065353216 # 0x3f800000 + .long 3182408396 # 0xbdafb2cc + .long 3201268682 # 0xbecf7bca + .long 2976529251 # 0xb16a3b63 + .long 1065353216 # 0x3f800000 + .long 3181110540 # 0xbd9be50c + .long 3200511765 # 0xbec3ef15 + .long 2983580972 # 0xb1d5d52c + .long 1065353216 # 0x3f800000 + .long 3179887378 # 0xbd893b12 + .long 3199747114 # 0xbeb8442a + .long 846224294 # 0x32705ba6 + .long 1065353216 # 0x3f800000 + .long 3178196862 # 0xbd6f6f7e + .long 3198975188 # 0xbeac7cd4 + .long 841305602 # 0x32254e02 + .long 1065353216 # 0x3f800000 + .long 3176053642 # 0xbd4ebb8a + .long 3198196453 # 0xbea09ae5 + .long 842959264 # 0x323e89a0 + .long 1065353216 # 0x3f800000 + .long 3174063957 # 0xbd305f55 + .long 3197411377 # 0xbe94a031 + .long 2993510896 # 0xb26d59f0 + .long 1065353216 # 0x3f800000 + .long 3172229004 # 0xbd145f8c + .long 3196620435 # 0xbe888e93 + .long 2972482974 # 0xb12c7d9e + .long 1065353216 # 0x3f800000 + .long 3170205956 # 0xbcf58104 + .long 3195588556 # 0xbe78cfcc + .long 823907357 # 0x311bd41d + .long 1065353216 # 0x3f800000 + .long 3167161428 # 0xbcc70c54 + .long 3193986067 # 0xbe605c13 + .long 2980570358 # 0xb1a7e4f6 + .long 1065353216 # 0x3f800000 + .long 3164432432 # 0xbc9d6830 + .long 3192374722 # 0xbe47c5c2 + .long 820352637 # 0x30e5967d + .long 1065353216 # 0x3f800000 + .long 3161536011 # 0xbc71360b + .long 3190755490 # 0xbe2f10a2 + .long 2970707961 # 0xb11167f9 + .long 1065353216 # 0x3f800000 + .long 3157349634 # 0xbc315502 + .long 3189129347 # 0xbe164083 + .long 2984830484 # 0xb1e8e614 + .long 1065353216 # 0x3f800000 + .long 3153489468 # 0xbbf66e3c + .long 3187323507 # 0xbdfab273 + .long 823486671 # 0x311568cf + .long 1065353216 # 0x3f800000 + .long 3147680113 # 0xbb9dc971 + .long 3184049462 # 0xbdc8bd36 + .long 813011701 # 0x307592f5 + .long 1065353216 # 0x3f800000 + .long 3140588184 # 0xbb319298 + .long 3180767493 # 0xbd96a905 + .long 827530849 # 0x31531e61 + .long 1065353216 # 0x3f800000 + .long 3130909128 # 0xba9de1c8 + .long 3175676720 # 0xbd48fb30 + .long 820978303 # 0x30ef227f + .long 1065353216 # 0x3f800000 + .long 3114133471 # 0xb99de7df + .long 3167292080 # 0xbcc90ab0 + .long 805685656 # 0x3005c998 + .long 1065353216 # 0x3f800000 + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 2147483647 # 0x7fffffff + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 1176256512 # 0x461c4000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 2139095040 # 0x7f800000 + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 3190467243 # 0xbe2aaaab + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 1007192156 # 0x3c08885c + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 3204448256 # 0xbf000000 + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1026206332 # 0x3d2aaa7c + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 1078525952 # 0x40490000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 981311488 # 0x3a7da000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 874651648 # 0x34222000 + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 750018842 # 0x2cb4611a + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 1078530011 # 0x40490fdb + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 3015425326 # 0xb3bbbd2e + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 2809605357 # 0xa7772ced + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 3190467238 # 0xbe2aaaa6 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 1007191910 # 0x3c088766 + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 3109009407 # 0xb94fb7ff + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 909041400 # 0x362edef8 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1050868099 # 0x3ea2f983 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .size __svml_hsin_ha_data_internal, 5376 + + diff --git a/linux/avx512/svml_z0_sinh_h_ha.s b/linux/avx512/svml_z0_sinh_h_ha.s new file mode 100644 index 0000000..8be8a5e --- /dev/null +++ b/linux/avx512/svml_z0_sinh_h_ha.s @@ -0,0 +1,282 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_sinhs32_ha # -- Begin function __svml_sinhs32_ha + .p2align 4 + .type __svml_sinhs32_ha,@function +__svml_sinhs32_ha: # + .cfi_startproc +# %bb.0: + vpandq __svml_hsinh_ha_data_internal(%rip), %zmm0, %zmm1 + vcvtph2psx %ymm1, %zmm2 + vextracti64x4 $1, %zmm1, %ymm3 + vcvtph2psx %ymm3, %zmm3 + vmovups __svml_hsinh_ha_data_internal+64(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsinh_ha_data_internal+128(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm6 + vfmadd213ps {rz-sae}, %zmm5, %zmm2, %zmm6 + vfmadd213ps {rz-sae}, %zmm5, %zmm3, %zmm4 + vsubps {rn-sae}, %zmm5, %zmm6, %zmm6 + vsubps {rn-sae}, %zmm5, %zmm4, %zmm4 + vmovups __svml_hsinh_ha_data_internal+192(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vfnmadd231ps {rn-sae}, %zmm5, %zmm6, %zmm2 + vfnmadd213ps {rn-sae}, %zmm3, %zmm4, %zmm5 + vmovups __svml_hsinh_ha_data_internal+256(%rip), %zmm3 # AlignMOV convert to UnAlignMOV + vandps %zmm2, %zmm3, %zmm2 + vandps %zmm5, %zmm3, %zmm3 + vmovups __svml_hsinh_ha_data_internal+320(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsinh_ha_data_internal+384(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsinh_ha_data_internal+448(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_hsinh_ha_data_internal+512(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovaps %zmm5, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm10 + vmovaps %zmm5, %zmm11 + vfmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm11 + vfmadd213ps {rn-sae}, %zmm8, %zmm2, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm11 + vfmadd213ps {rn-sae}, %zmm9, %zmm2, %zmm10 + vfmadd213ps {rn-sae}, %zmm9, %zmm3, %zmm11 + vmovaps %zmm5, %zmm12 + vfnmadd213ps {rn-sae}, %zmm7, %zmm2, %zmm12 + vfnmadd213ps {rn-sae}, %zmm7, %zmm3, %zmm5 + vfnmadd213ps {rn-sae}, %zmm8, %zmm2, %zmm12 + vfnmadd213ps {rn-sae}, %zmm8, %zmm3, %zmm5 + vfnmadd213ps {rn-sae}, %zmm9, %zmm2, %zmm12 + vfnmadd213ps {rn-sae}, %zmm9, %zmm3, %zmm5 + vsubps {rn-sae}, %zmm9, %zmm6, %zmm6 + vmovups __svml_hsinh_ha_data_internal+576(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vscalefps {rn-sae}, %zmm6, %zmm7, %zmm6 + vrcp14ps %zmm6, %zmm8 + vsubps {rn-sae}, %zmm9, %zmm4, %zmm4 + vscalefps {rn-sae}, %zmm4, %zmm7, %zmm4 + vrcp14ps %zmm4, %zmm7 + vmulps {rn-sae}, %zmm2, %zmm6, %zmm9 + vmulps {rn-sae}, %zmm3, %zmm4, %zmm13 + vmulps {rn-sae}, %zmm2, %zmm8, %zmm2 + vmulps {rn-sae}, %zmm2, %zmm12, %zmm2 + vmulps {rn-sae}, %zmm3, %zmm7, %zmm3 + vmulps {rn-sae}, %zmm3, %zmm5, %zmm3 + vmovups __svml_hsinh_ha_data_internal+640(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vfnmadd213ps {rn-sae}, %zmm6, %zmm5, %zmm8 + vfnmadd213ps {rn-sae}, %zmm4, %zmm5, %zmm7 + vmulps {rn-sae}, %zmm5, %zmm2, %zmm2 + vfmadd231ps {rn-sae}, %zmm9, %zmm10, %zmm2 + vaddps {rn-sae}, %zmm8, %zmm2, %zmm2 + vmulps {rn-sae}, %zmm5, %zmm3, %zmm3 + vfmadd231ps {rn-sae}, %zmm13, %zmm11, %zmm3 + vaddps {rn-sae}, %zmm7, %zmm3, %zmm3 + vfpclassps $8, %zmm6, %k1 # k1 = isPositiveInfinity(zmm6) + vfpclassps $8, %zmm4, %k2 # k2 = isPositiveInfinity(zmm4) + vmovaps %zmm6, %zmm2 {%k1} + vmovaps %zmm4, %zmm3 {%k2} + vcvtps2phx %zmm2, %ymm2 + vcvtps2phx %zmm3, %ymm3 + vinserti64x4 $1, %ymm3, %zmm2, %zmm2 + vpternlogq $150, %zmm2, %zmm1, %zmm0 # zmm0 = zmm0 ^ zmm1 ^ zmm2 + retq +.Lfunc_end0: + .size __svml_sinhs32_ha, .Lfunc_end0-__svml_sinhs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_hsinh_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1069066811 # 0x3fb8aa3b + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1262485504 # 0x4b400000 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 1060205080 # 0x3f317218 + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 3221225471 # 0xbfffffff + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1026477880 # 0x3d2ecf38 + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1043255151 # 0x3e2ecf6f + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1056959153 # 0x3effeab1 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065349126 # 0x3f7ff006 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .long 1048576000 # 0x3e800000 + .size __svml_hsinh_ha_data_internal, 704 + + diff --git a/linux/avx512/svml_z0_tan_h_ha.s b/linux/avx512/svml_z0_tan_h_ha.s new file mode 100644 index 0000000..ff1dbab --- /dev/null +++ b/linux/avx512/svml_z0_tan_h_ha.s @@ -0,0 +1,228 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_tans32_ha # -- Begin function __svml_tans32_ha + .p2align 4 + .type __svml_tans32_ha,@function +__svml_tans32_ha: # + .cfi_startproc +# %bb.0: + vpandq __svml_htan_ha_data_internal(%rip), %zmm0, %zmm1 + vcvtph2psx %ymm1, %zmm2 + vextracti64x4 $1, %zmm1, %ymm3 + vcvtph2psx %ymm3, %zmm3 + vmovups __svml_htan_ha_data_internal+128(%rip), %zmm4 # AlignMOV convert to UnAlignMOV + vmovups __svml_htan_ha_data_internal+64(%rip), %zmm5 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm6 + vfmadd213ps {rn-sae}, %zmm5, %zmm2, %zmm6 + vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm4 + vsubps {rn-sae}, %zmm5, %zmm6, %zmm7 + vsubps {rn-sae}, %zmm5, %zmm4, %zmm5 + vmovups __svml_htan_ha_data_internal+192(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_htan_ha_data_internal+256(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vfmadd231ps {rn-sae}, %zmm8, %zmm7, %zmm2 + vfmadd213ps {rn-sae}, %zmm3, %zmm5, %zmm8 + vfmadd231ps {rn-sae}, %zmm7, %zmm9, %zmm2 + vfmadd231ps {rn-sae}, %zmm9, %zmm5, %zmm8 + vpslld $31, %zmm6, %zmm3 + vpslld $31, %zmm4, %zmm4 + vmulps {rn-sae}, %zmm2, %zmm2, %zmm5 + vmulps {rn-sae}, %zmm8, %zmm8, %zmm6 + vpxord %zmm2, %zmm3, %zmm2 + vpxord %zmm8, %zmm4, %zmm7 + vmovups __svml_htan_ha_data_internal+320(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_htan_ha_data_internal+384(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_htan_ha_data_internal+448(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_htan_ha_data_internal+512(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovaps %zmm8, %zmm12 + vfmadd213ps {rn-sae}, %zmm9, %zmm5, %zmm12 + vfmadd213ps {rn-sae}, %zmm9, %zmm6, %zmm8 + vfmadd213ps {rn-sae}, %zmm10, %zmm5, %zmm12 + vfmadd213ps {rn-sae}, %zmm10, %zmm6, %zmm8 + vfmadd213ps {rn-sae}, %zmm11, %zmm5, %zmm12 + vmulps {rn-sae}, %zmm2, %zmm12, %zmm2 + vfmadd213ps {rn-sae}, %zmm11, %zmm6, %zmm8 + vmulps {rn-sae}, %zmm7, %zmm8, %zmm5 + vptestmd %zmm3, %zmm3, %k1 + vptestmd %zmm4, %zmm4, %k2 + vrcp14ps %zmm2, %zmm2 {%k1} + vrcp14ps %zmm5, %zmm5 {%k2} + vcvtps2phx %zmm2, %ymm2 + vcvtps2phx %zmm5, %ymm3 + vinserti64x4 $1, %ymm3, %zmm2, %zmm2 + vpternlogq $150, %zmm2, %zmm1, %zmm0 # zmm0 = zmm0 ^ zmm1 ^ zmm2 + retq +.Lfunc_end0: + .size __svml_tans32_ha, .Lfunc_end0-__svml_tans32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_htan_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1258291200 # 0x4b000000 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 1059256707 # 0x3f22f983 + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 3217625051 # 0xbfc90fdb + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 859553070 # 0x333bbd2e + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1036044169 # 0x3dc0c789 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1038976194 # 0x3ded84c2 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1051447685 # 0x3eabd185 + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .long 1065352475 # 0x3f7ffd1b + .size __svml_htan_ha_data_internal, 576 + + diff --git a/linux/avx512/svml_z0_tanh_h_ha.s b/linux/avx512/svml_z0_tanh_h_ha.s new file mode 100644 index 0000000..d99ae04 --- /dev/null +++ b/linux/avx512/svml_z0_tanh_h_ha.s @@ -0,0 +1,218 @@ +/******************************************* +* Copyright (C) 2026 Intel Corporation +* SPDX-License-Identifier: BSD-3-Clause +*******************************************/ + + .text + .globl __svml_tanhs32_ha # -- Begin function __svml_tanhs32_ha + .p2align 4 + .type __svml_tanhs32_ha,@function +__svml_tanhs32_ha: # + .cfi_startproc +# %bb.0: + vandps __svml_htanh_ha_data_internal(%rip), %zmm0, %zmm1 + vmovups __svml_htanh_ha_data_internal+64(%rip), %zmm2 # AlignMOV convert to UnAlignMOV + vminph {sae}, %zmm1, %zmm2, %zmm2 + vcvtph2psx %ymm2, %zmm3 + vextractf64x4 $1, %zmm2, %ymm2 + vcvtph2psx %ymm2, %zmm2 + vmulps {rn-sae}, %zmm3, %zmm3, %zmm4 + vmulps {rn-sae}, %zmm2, %zmm2, %zmm5 + vmovups __svml_htanh_ha_data_internal+128(%rip), %zmm6 # AlignMOV convert to UnAlignMOV + vmovups __svml_htanh_ha_data_internal+192(%rip), %zmm7 # AlignMOV convert to UnAlignMOV + vmovups __svml_htanh_ha_data_internal+256(%rip), %zmm8 # AlignMOV convert to UnAlignMOV + vmovups __svml_htanh_ha_data_internal+320(%rip), %zmm9 # AlignMOV convert to UnAlignMOV + vmovups __svml_htanh_ha_data_internal+384(%rip), %zmm10 # AlignMOV convert to UnAlignMOV + vmovups __svml_htanh_ha_data_internal+448(%rip), %zmm11 # AlignMOV convert to UnAlignMOV + vmovaps %zmm4, %zmm12 + vfmadd213ps {rn-sae}, %zmm10, %zmm9, %zmm12 + vfmadd213ps {rn-sae}, %zmm10, %zmm5, %zmm9 + vfmadd213ps {rn-sae}, %zmm11, %zmm4, %zmm12 + vfmadd213ps {rn-sae}, %zmm11, %zmm5, %zmm9 + vmovaps %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm6, %zmm10 + vfmadd213ps {rn-sae}, %zmm7, %zmm5, %zmm6 + vfmadd213ps {rn-sae}, %zmm8, %zmm4, %zmm10 + vfmadd213ps {rn-sae}, %zmm8, %zmm5, %zmm6 + vrcp14ps %zmm12, %zmm4 + vmulps {rn-sae}, %zmm4, %zmm10, %zmm4 + vrcp14ps %zmm9, %zmm5 + vmulps {rn-sae}, %zmm5, %zmm6, %zmm5 + vfmadd213ps {rn-sae}, %zmm3, %zmm3, %zmm4 + vfmadd213ps {rn-sae}, %zmm2, %zmm2, %zmm5 + vcvtps2phx %zmm4, %ymm2 + vcvtps2phx %zmm5, %ymm3 + vinserti64x4 $1, %ymm3, %zmm2, %zmm2 + vpternlogq $150, %zmm2, %zmm1, %zmm0 # zmm0 = zmm0 ^ zmm1 ^ zmm2 + retq +.Lfunc_end0: + .size __svml_tanhs32_ha, .Lfunc_end0-__svml_tanhs32_ha + .cfi_endproc + # -- End function + + .section .rodata,"a",@progbits + .p2align 6, 0x0 +__svml_htanh_ha_data_internal: + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 32767 # 0x7fff + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .short 17536 # 0x4480 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3159470903 # 0xbc51b337 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3198852470 # 0xbeaa9d76 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 3073989605 # 0xb7395be5 + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1012789613 # 0x3c5df16d + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1054883781 # 0x3ee03fc5 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .long 1065353216 # 0x3f800000 + .size __svml_htanh_ha_data_internal, 512 + + From 9ca8ff00d4aabb7ddf4be8981c040d0747d08dc9 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 21 Aug 2026 04:44:38 +0000 Subject: [PATCH 2/3] Mark stack non-executable in FP16 HA files Add .section .note.GNU-stack,"",@progbits to all 23 FP16 HA assembly files. --- linux/avx512/svml_z0_acos_h_ha.s | 2 ++ linux/avx512/svml_z0_acosh_h_ha.s | 2 ++ linux/avx512/svml_z0_asin_h_ha.s | 2 ++ linux/avx512/svml_z0_asinh_h_ha.s | 2 ++ linux/avx512/svml_z0_atan2_h_ha.s | 2 ++ linux/avx512/svml_z0_atan_h_ha.s | 2 ++ linux/avx512/svml_z0_atanh_h_ha.s | 2 ++ linux/avx512/svml_z0_cbrt_h_ha.s | 2 ++ linux/avx512/svml_z0_cos_h_ha.s | 2 ++ linux/avx512/svml_z0_cosh_h_ha.s | 2 ++ linux/avx512/svml_z0_exp10_h_ha.s | 2 ++ linux/avx512/svml_z0_exp2_h_ha.s | 2 ++ linux/avx512/svml_z0_exp_h_ha.s | 2 ++ linux/avx512/svml_z0_expm1_h_ha.s | 2 ++ linux/avx512/svml_z0_log10_h_ha.s | 2 ++ linux/avx512/svml_z0_log1p_h_ha.s | 2 ++ linux/avx512/svml_z0_log2_h_ha.s | 2 ++ linux/avx512/svml_z0_log_h_ha.s | 2 ++ linux/avx512/svml_z0_pow_h_ha.s | 2 ++ linux/avx512/svml_z0_sin_h_ha.s | 2 ++ linux/avx512/svml_z0_sinh_h_ha.s | 2 ++ linux/avx512/svml_z0_tan_h_ha.s | 2 ++ linux/avx512/svml_z0_tanh_h_ha.s | 2 ++ 23 files changed, 46 insertions(+) diff --git a/linux/avx512/svml_z0_acos_h_ha.s b/linux/avx512/svml_z0_acos_h_ha.s index dc59ae8..f9d660b 100644 --- a/linux/avx512/svml_z0_acos_h_ha.s +++ b/linux/avx512/svml_z0_acos_h_ha.s @@ -186,3 +186,5 @@ __svml_hacos_ha_data_internal: .size __svml_hacos_ha_data_internal, 512 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_acosh_h_ha.s b/linux/avx512/svml_z0_acosh_h_ha.s index 371e4df..5786e28 100644 --- a/linux/avx512/svml_z0_acosh_h_ha.s +++ b/linux/avx512/svml_z0_acosh_h_ha.s @@ -294,3 +294,5 @@ __svml_hacosh_ha_data_internal: .size __svml_hacosh_ha_data_internal, 832 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_asin_h_ha.s b/linux/avx512/svml_z0_asin_h_ha.s index c9bff16..aa77e05 100644 --- a/linux/avx512/svml_z0_asin_h_ha.s +++ b/linux/avx512/svml_z0_asin_h_ha.s @@ -183,3 +183,5 @@ __svml_hasin_ha_data_internal: .size __svml_hasin_ha_data_internal, 512 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_asinh_h_ha.s b/linux/avx512/svml_z0_asinh_h_ha.s index ec572c3..5f439eb 100644 --- a/linux/avx512/svml_z0_asinh_h_ha.s +++ b/linux/avx512/svml_z0_asinh_h_ha.s @@ -332,3 +332,5 @@ __svml_hasinh_ha_data_internal: .size __svml_hasinh_ha_data_internal, 960 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atan2_h_ha.s b/linux/avx512/svml_z0_atan2_h_ha.s index 576d1af..d04ff4c 100644 --- a/linux/avx512/svml_z0_atan2_h_ha.s +++ b/linux/avx512/svml_z0_atan2_h_ha.s @@ -377,3 +377,5 @@ __svml_hatan2_ha_data_internal: .size __svml_hatan2_ha_data_internal, 576 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atan_h_ha.s b/linux/avx512/svml_z0_atan_h_ha.s index c7d3068..6fc8245 100644 --- a/linux/avx512/svml_z0_atan_h_ha.s +++ b/linux/avx512/svml_z0_atan_h_ha.s @@ -221,3 +221,5 @@ __svml_hatan_ha_data_internal: .size __svml_hatan_ha_data_internal, 640 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atanh_h_ha.s b/linux/avx512/svml_z0_atanh_h_ha.s index 2d7c3df..df70cd3 100644 --- a/linux/avx512/svml_z0_atanh_h_ha.s +++ b/linux/avx512/svml_z0_atanh_h_ha.s @@ -228,3 +228,5 @@ __svml_hatanh_ha_data_internal: .size __svml_hatanh_ha_data_internal, 576 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cbrt_h_ha.s b/linux/avx512/svml_z0_cbrt_h_ha.s index 92abc26..8e70f6b 100644 --- a/linux/avx512/svml_z0_cbrt_h_ha.s +++ b/linux/avx512/svml_z0_cbrt_h_ha.s @@ -255,3 +255,5 @@ __svml_hcbrt_ha_data_internal: .size __svml_hcbrt_ha_data_internal, 704 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cos_h_ha.s b/linux/avx512/svml_z0_cos_h_ha.s index dac6c69..9332616 100644 --- a/linux/avx512/svml_z0_cos_h_ha.s +++ b/linux/avx512/svml_z0_cos_h_ha.s @@ -1518,3 +1518,5 @@ __svml_hcos_ha_data_internal: .size __svml_hcos_ha_data_internal, 5760 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cosh_h_ha.s b/linux/avx512/svml_z0_cosh_h_ha.s index 877b171..889b82c 100644 --- a/linux/avx512/svml_z0_cosh_h_ha.s +++ b/linux/avx512/svml_z0_cosh_h_ha.s @@ -221,3 +221,5 @@ __svml_hcosh_ha_data_internal: .size __svml_hcosh_ha_data_internal, 576 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp10_h_ha.s b/linux/avx512/svml_z0_exp10_h_ha.s index bb95d19..27b508e 100644 --- a/linux/avx512/svml_z0_exp10_h_ha.s +++ b/linux/avx512/svml_z0_exp10_h_ha.s @@ -455,3 +455,5 @@ __svml_hexp10_ha_data_internal_avx512: .size __svml_hexp10_ha_data_internal_avx512, 1280 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp2_h_ha.s b/linux/avx512/svml_z0_exp2_h_ha.s index 3524ed0..5c0e673 100644 --- a/linux/avx512/svml_z0_exp2_h_ha.s +++ b/linux/avx512/svml_z0_exp2_h_ha.s @@ -426,3 +426,5 @@ __svml_hexp2_ha_data_internal: .size __svml_hexp2_ha_data_internal, 896 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp_h_ha.s b/linux/avx512/svml_z0_exp_h_ha.s index 5f3e94d..f298f85 100644 --- a/linux/avx512/svml_z0_exp_h_ha.s +++ b/linux/avx512/svml_z0_exp_h_ha.s @@ -753,3 +753,5 @@ __svml_hexp_ha_data_internal: .size __svml_hexp_ha_data_internal, 1920 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_expm1_h_ha.s b/linux/avx512/svml_z0_expm1_h_ha.s index a9293d8..e81b537 100644 --- a/linux/avx512/svml_z0_expm1_h_ha.s +++ b/linux/avx512/svml_z0_expm1_h_ha.s @@ -172,3 +172,5 @@ __svml_hexpm1_ha_data_internal: .size __svml_hexpm1_ha_data_internal, 448 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log10_h_ha.s b/linux/avx512/svml_z0_log10_h_ha.s index 0f572c0..58a7d35 100644 --- a/linux/avx512/svml_z0_log10_h_ha.s +++ b/linux/avx512/svml_z0_log10_h_ha.s @@ -393,3 +393,5 @@ __svml_hlog10_ha_data_internal: .size __svml_hlog10_ha_data_internal, 1216 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log1p_h_ha.s b/linux/avx512/svml_z0_log1p_h_ha.s index 17752f4..680b5a0 100644 --- a/linux/avx512/svml_z0_log1p_h_ha.s +++ b/linux/avx512/svml_z0_log1p_h_ha.s @@ -205,3 +205,5 @@ __svml_hlog1p_ha_data_internal: .size __svml_hlog1p_ha_data_internal, 512 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log2_h_ha.s b/linux/avx512/svml_z0_log2_h_ha.s index da0b021..a86f999 100644 --- a/linux/avx512/svml_z0_log2_h_ha.s +++ b/linux/avx512/svml_z0_log2_h_ha.s @@ -344,3 +344,5 @@ __svml_hlog2_ha_data_internal: .size __svml_hlog2_ha_data_internal, 1088 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log_h_ha.s b/linux/avx512/svml_z0_log_h_ha.s index 2a69934..4e1accc 100644 --- a/linux/avx512/svml_z0_log_h_ha.s +++ b/linux/avx512/svml_z0_log_h_ha.s @@ -541,3 +541,5 @@ __svml_hlog_ha_data_internal: .size __svml_hlog_ha_data_internal, 1280 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_pow_h_ha.s b/linux/avx512/svml_z0_pow_h_ha.s index c927ca3..8344896 100644 --- a/linux/avx512/svml_z0_pow_h_ha.s +++ b/linux/avx512/svml_z0_pow_h_ha.s @@ -399,3 +399,5 @@ __svml_hpow_ha_data_internal: .size __svml_hpow_ha_data_internal, 704 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_sin_h_ha.s b/linux/avx512/svml_z0_sin_h_ha.s index 735a252..e3705b1 100644 --- a/linux/avx512/svml_z0_sin_h_ha.s +++ b/linux/avx512/svml_z0_sin_h_ha.s @@ -1555,3 +1555,5 @@ __svml_hsin_ha_data_internal: .size __svml_hsin_ha_data_internal, 5376 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_sinh_h_ha.s b/linux/avx512/svml_z0_sinh_h_ha.s index 8be8a5e..99cc14d 100644 --- a/linux/avx512/svml_z0_sinh_h_ha.s +++ b/linux/avx512/svml_z0_sinh_h_ha.s @@ -280,3 +280,5 @@ __svml_hsinh_ha_data_internal: .size __svml_hsinh_ha_data_internal, 704 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_tan_h_ha.s b/linux/avx512/svml_z0_tan_h_ha.s index ff1dbab..03f842e 100644 --- a/linux/avx512/svml_z0_tan_h_ha.s +++ b/linux/avx512/svml_z0_tan_h_ha.s @@ -226,3 +226,5 @@ __svml_htan_ha_data_internal: .size __svml_htan_ha_data_internal, 576 + + .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_tanh_h_ha.s b/linux/avx512/svml_z0_tanh_h_ha.s index d99ae04..29b97de 100644 --- a/linux/avx512/svml_z0_tanh_h_ha.s +++ b/linux/avx512/svml_z0_tanh_h_ha.s @@ -216,3 +216,5 @@ __svml_htanh_ha_data_internal: .size __svml_htanh_ha_data_internal, 512 + + .section .note.GNU-stack,"",@progbits From b3a095f23e59154fd6b1d1a65621fb6a9c5ce553 Mon Sep 17 00:00:00 2001 From: Raghuveer Devulapalli Date: Fri, 21 Aug 2026 04:49:30 +0000 Subject: [PATCH 3/3] Add CET support to FP16 HA functions - Add endbr64 at every function entry point for IBT (Indirect Branch Tracking) support - Add .note.gnu.property section declaring IBT (0xc0000002) and shadow stack (0x00000003) compatibility flags --- linux/avx512/svml_z0_acos_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_acosh_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_asin_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_asinh_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_atan2_h_ha.s | 12 ++++++++++++ linux/avx512/svml_z0_atan_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_atanh_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_cbrt_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_cos_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_cosh_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_exp10_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_exp2_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_exp_h_ha.s | 12 ++++++++++++ linux/avx512/svml_z0_expm1_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_log10_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_log1p_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_log2_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_log_h_ha.s | 12 ++++++++++++ linux/avx512/svml_z0_pow_h_ha.s | 12 ++++++++++++ linux/avx512/svml_z0_sin_h_ha.s | 12 ++++++++++++ linux/avx512/svml_z0_sinh_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_tan_h_ha.s | 11 +++++++++++ linux/avx512/svml_z0_tanh_h_ha.s | 11 +++++++++++ 23 files changed, 258 insertions(+) diff --git a/linux/avx512/svml_z0_acos_h_ha.s b/linux/avx512/svml_z0_acos_h_ha.s index f9d660b..609eb4e 100644 --- a/linux/avx512/svml_z0_acos_h_ha.s +++ b/linux/avx512/svml_z0_acos_h_ha.s @@ -9,6 +9,7 @@ .type __svml_acoss32_ha,@function __svml_acoss32_ha: # .cfi_startproc + endbr64 # %bb.0: kmovq %k4, -8(%rsp) # 8-byte Spill vcvtph2psx %ymm0, %zmm1 @@ -187,4 +188,14 @@ __svml_hacos_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_acosh_h_ha.s b/linux/avx512/svml_z0_acosh_h_ha.s index 5786e28..5a8fa9a 100644 --- a/linux/avx512/svml_z0_acosh_h_ha.s +++ b/linux/avx512/svml_z0_acosh_h_ha.s @@ -9,6 +9,7 @@ .type __svml_acoshs32_ha,@function __svml_acoshs32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm0 @@ -295,4 +296,14 @@ __svml_hacosh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_asin_h_ha.s b/linux/avx512/svml_z0_asin_h_ha.s index aa77e05..15e7494 100644 --- a/linux/avx512/svml_z0_asin_h_ha.s +++ b/linux/avx512/svml_z0_asin_h_ha.s @@ -9,6 +9,7 @@ .type __svml_asins32_ha,@function __svml_asins32_ha: # .cfi_startproc + endbr64 # %bb.0: kmovq %k4, -8(%rsp) # 8-byte Spill vcvtph2psx %ymm0, %zmm1 @@ -184,4 +185,14 @@ __svml_hasin_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_asinh_h_ha.s b/linux/avx512/svml_z0_asinh_h_ha.s index 5f439eb..bcc8c7b 100644 --- a/linux/avx512/svml_z0_asinh_h_ha.s +++ b/linux/avx512/svml_z0_asinh_h_ha.s @@ -9,6 +9,7 @@ .type __svml_asinhs32_ha,@function __svml_asinhs32_ha: # .cfi_startproc + endbr64 # %bb.0: vmovups %zmm16, -120(%rsp) # 64-byte Spill vcvtph2psx %ymm0, %zmm1 @@ -333,4 +334,14 @@ __svml_hasinh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atan2_h_ha.s b/linux/avx512/svml_z0_atan2_h_ha.s index d04ff4c..dc61440 100644 --- a/linux/avx512/svml_z0_atan2_h_ha.s +++ b/linux/avx512/svml_z0_atan2_h_ha.s @@ -9,6 +9,7 @@ .type __svml_atan2s32_ha,@function __svml_atan2s32_ha: # .cfi_startproc + endbr64 # %bb.0: vmovups __svml_hatan2_ha_data_internal(%rip), %zmm2 # AlignMOV convert to UnAlignMOV vandps %zmm1, %zmm2, %zmm4 @@ -139,6 +140,7 @@ __svml_atan2s32_ha: # .type __svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper,@function __svml_z0__svml_hatan2_ha_cout_rare_internal_wrapper: # .cfi_startproc + endbr64 # %bb.0: subq $184, %rsp vmovups %xmm15, 160(%rsp) # 16-byte Spill @@ -378,4 +380,14 @@ __svml_hatan2_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atan_h_ha.s b/linux/avx512/svml_z0_atan_h_ha.s index 6fc8245..6ef6ffd 100644 --- a/linux/avx512/svml_z0_atan_h_ha.s +++ b/linux/avx512/svml_z0_atan_h_ha.s @@ -9,6 +9,7 @@ .type __svml_atans32_ha,@function __svml_atans32_ha: # .cfi_startproc + endbr64 # %bb.0: vpandq __svml_hatan_ha_data_internal(%rip), %zmm0, %zmm1 vcvtph2psx %ymm1, %zmm2 @@ -222,4 +223,14 @@ __svml_hatan_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_atanh_h_ha.s b/linux/avx512/svml_z0_atanh_h_ha.s index df70cd3..b72393f 100644 --- a/linux/avx512/svml_z0_atanh_h_ha.s +++ b/linux/avx512/svml_z0_atanh_h_ha.s @@ -14,6 +14,7 @@ .type __svml_atanhs32_ha,@function __svml_atanhs32_ha: # .cfi_startproc + endbr64 # %bb.0: vmovdqu64 __svml_hatanh_ha_data_internal+384(%rip), %zmm1 # AlignMOV convert to UnAlignMOV vmovups __svml_hatanh_ha_data_internal+448(%rip), %zmm2 # AlignMOV convert to UnAlignMOV @@ -229,4 +230,14 @@ __svml_hatanh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cbrt_h_ha.s b/linux/avx512/svml_z0_cbrt_h_ha.s index 8e70f6b..b4f205d 100644 --- a/linux/avx512/svml_z0_cbrt_h_ha.s +++ b/linux/avx512/svml_z0_cbrt_h_ha.s @@ -14,6 +14,7 @@ .type __svml_cbrts32_ha,@function __svml_cbrts32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -256,4 +257,14 @@ __svml_hcbrt_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cos_h_ha.s b/linux/avx512/svml_z0_cos_h_ha.s index 9332616..a48fe93 100644 --- a/linux/avx512/svml_z0_cos_h_ha.s +++ b/linux/avx512/svml_z0_cos_h_ha.s @@ -9,6 +9,7 @@ .type __svml_coss32_ha,@function __svml_coss32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm0 @@ -1519,4 +1520,14 @@ __svml_hcos_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_cosh_h_ha.s b/linux/avx512/svml_z0_cosh_h_ha.s index 889b82c..d14a444 100644 --- a/linux/avx512/svml_z0_cosh_h_ha.s +++ b/linux/avx512/svml_z0_cosh_h_ha.s @@ -9,6 +9,7 @@ .type __svml_coshs32_ha,@function __svml_coshs32_ha: # .cfi_startproc + endbr64 # %bb.0: vandps __svml_hcosh_ha_data_internal(%rip), %zmm0, %zmm0 vcvtph2psx %ymm0, %zmm1 @@ -222,4 +223,14 @@ __svml_hcosh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp10_h_ha.s b/linux/avx512/svml_z0_exp10_h_ha.s index 27b508e..5702038 100644 --- a/linux/avx512/svml_z0_exp10_h_ha.s +++ b/linux/avx512/svml_z0_exp10_h_ha.s @@ -9,6 +9,7 @@ .type __svml_exp10s32_ha,@function __svml_exp10s32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm0 @@ -456,4 +457,14 @@ __svml_hexp10_ha_data_internal_avx512: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp2_h_ha.s b/linux/avx512/svml_z0_exp2_h_ha.s index 5c0e673..53889e8 100644 --- a/linux/avx512/svml_z0_exp2_h_ha.s +++ b/linux/avx512/svml_z0_exp2_h_ha.s @@ -9,6 +9,7 @@ .type __svml_exp2s32_ha,@function __svml_exp2s32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -427,4 +428,14 @@ __svml_hexp2_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_exp_h_ha.s b/linux/avx512/svml_z0_exp_h_ha.s index f298f85..cf0fda5 100644 --- a/linux/avx512/svml_z0_exp_h_ha.s +++ b/linux/avx512/svml_z0_exp_h_ha.s @@ -9,6 +9,7 @@ .type __svml_exps32_ha,@function __svml_exps32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -134,6 +135,7 @@ __svml_exps32_ha: # .type __svml_z0__svml_hexp_ha_cout_rare_internal_wrapper,@function __svml_z0__svml_hexp_ha_cout_rare_internal_wrapper: # .cfi_startproc + endbr64 # %bb.0: subq $168, %rsp vmovups %xmm15, 144(%rsp) # 16-byte Spill @@ -754,4 +756,14 @@ __svml_hexp_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_expm1_h_ha.s b/linux/avx512/svml_z0_expm1_h_ha.s index e81b537..3c3b646 100644 --- a/linux/avx512/svml_z0_expm1_h_ha.s +++ b/linux/avx512/svml_z0_expm1_h_ha.s @@ -9,6 +9,7 @@ .type __svml_expm1s32_ha,@function __svml_expm1s32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm0 @@ -173,4 +174,14 @@ __svml_hexpm1_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log10_h_ha.s b/linux/avx512/svml_z0_log10_h_ha.s index 58a7d35..d5091d8 100644 --- a/linux/avx512/svml_z0_log10_h_ha.s +++ b/linux/avx512/svml_z0_log10_h_ha.s @@ -9,6 +9,7 @@ .type __svml_log10s32_ha,@function __svml_log10s32_ha: # .cfi_startproc + endbr64 # %bb.0: vgetmantph $11, {sae}, %zmm0, %zmm1 vgetexpph {sae}, %zmm0, %zmm0 @@ -394,4 +395,14 @@ __svml_hlog10_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log1p_h_ha.s b/linux/avx512/svml_z0_log1p_h_ha.s index 680b5a0..162ba09 100644 --- a/linux/avx512/svml_z0_log1p_h_ha.s +++ b/linux/avx512/svml_z0_log1p_h_ha.s @@ -9,6 +9,7 @@ .type __svml_log1ps32_ha,@function __svml_log1ps32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -206,4 +207,14 @@ __svml_hlog1p_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log2_h_ha.s b/linux/avx512/svml_z0_log2_h_ha.s index a86f999..fae045e 100644 --- a/linux/avx512/svml_z0_log2_h_ha.s +++ b/linux/avx512/svml_z0_log2_h_ha.s @@ -9,6 +9,7 @@ .type __svml_log2s32_ha,@function __svml_log2s32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm0 @@ -345,4 +346,14 @@ __svml_hlog2_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_log_h_ha.s b/linux/avx512/svml_z0_log_h_ha.s index 4e1accc..6374f55 100644 --- a/linux/avx512/svml_z0_log_h_ha.s +++ b/linux/avx512/svml_z0_log_h_ha.s @@ -9,6 +9,7 @@ .type __svml_logs32_ha,@function __svml_logs32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -130,6 +131,7 @@ __svml_logs32_ha: # .type __svml_z0__svml_hlog_ha_cout_rare_internal_wrapper,@function __svml_z0__svml_hlog_ha_cout_rare_internal_wrapper: # .cfi_startproc + endbr64 # %bb.0: subq $168, %rsp vmovups %xmm15, 144(%rsp) # 16-byte Spill @@ -542,4 +544,14 @@ __svml_hlog_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_pow_h_ha.s b/linux/avx512/svml_z0_pow_h_ha.s index 8344896..0a0f238 100644 --- a/linux/avx512/svml_z0_pow_h_ha.s +++ b/linux/avx512/svml_z0_pow_h_ha.s @@ -9,6 +9,7 @@ .type __svml_pows32_ha,@function __svml_pows32_ha: # .cfi_startproc + endbr64 # %bb.0: vfpclassph $223, %zmm0, %k0 # k0 = isQuietNaN(zmm0) | isPositiveZero(zmm0) | isNegativeZero(zmm0) | isPositiveInfinity(zmm0) | isNegativeInfinity(zmm0) | isNegative(zmm0) | isSignalingNaN(zmm0) vcvtph2psx %ymm0, %zmm2 @@ -145,6 +146,7 @@ __svml_pows32_ha: # .type __svml_z0__svml_hpow_ha_cout_rare_internal_wrapper,@function __svml_z0__svml_hpow_ha_cout_rare_internal_wrapper: # .cfi_startproc + endbr64 # %bb.0: subq $184, %rsp vmovups %xmm15, 160(%rsp) # 16-byte Spill @@ -400,4 +402,14 @@ __svml_hpow_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_sin_h_ha.s b/linux/avx512/svml_z0_sin_h_ha.s index e3705b1..56bdeeb 100644 --- a/linux/avx512/svml_z0_sin_h_ha.s +++ b/linux/avx512/svml_z0_sin_h_ha.s @@ -9,6 +9,7 @@ .type __svml_sins32_ha,@function __svml_sins32_ha: # .cfi_startproc + endbr64 # %bb.0: vcvtph2psx %ymm0, %zmm1 vextractf64x4 $1, %zmm0, %ymm2 @@ -137,6 +138,7 @@ __svml_sins32_ha: # .type __svml_z0__svml_hsin_ha_cout_rare_internal_wrapper,@function __svml_z0__svml_hsin_ha_cout_rare_internal_wrapper: # .cfi_startproc + endbr64 # %bb.0: subq $168, %rsp vmovups %xmm15, 144(%rsp) # 16-byte Spill @@ -1556,4 +1558,14 @@ __svml_hsin_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_sinh_h_ha.s b/linux/avx512/svml_z0_sinh_h_ha.s index 99cc14d..ed3695b 100644 --- a/linux/avx512/svml_z0_sinh_h_ha.s +++ b/linux/avx512/svml_z0_sinh_h_ha.s @@ -9,6 +9,7 @@ .type __svml_sinhs32_ha,@function __svml_sinhs32_ha: # .cfi_startproc + endbr64 # %bb.0: vpandq __svml_hsinh_ha_data_internal(%rip), %zmm0, %zmm1 vcvtph2psx %ymm1, %zmm2 @@ -281,4 +282,14 @@ __svml_hsinh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_tan_h_ha.s b/linux/avx512/svml_z0_tan_h_ha.s index 03f842e..c0612e9 100644 --- a/linux/avx512/svml_z0_tan_h_ha.s +++ b/linux/avx512/svml_z0_tan_h_ha.s @@ -9,6 +9,7 @@ .type __svml_tans32_ha,@function __svml_tans32_ha: # .cfi_startproc + endbr64 # %bb.0: vpandq __svml_htan_ha_data_internal(%rip), %zmm0, %zmm1 vcvtph2psx %ymm1, %zmm2 @@ -227,4 +228,14 @@ __svml_htan_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits diff --git a/linux/avx512/svml_z0_tanh_h_ha.s b/linux/avx512/svml_z0_tanh_h_ha.s index 29b97de..51e9e4e 100644 --- a/linux/avx512/svml_z0_tanh_h_ha.s +++ b/linux/avx512/svml_z0_tanh_h_ha.s @@ -9,6 +9,7 @@ .type __svml_tanhs32_ha,@function __svml_tanhs32_ha: # .cfi_startproc + endbr64 # %bb.0: vandps __svml_htanh_ha_data_internal(%rip), %zmm0, %zmm1 vmovups __svml_htanh_ha_data_internal+64(%rip), %zmm2 # AlignMOV convert to UnAlignMOV @@ -217,4 +218,14 @@ __svml_htanh_ha_data_internal: + .section .note.gnu.property,"a",@note + .p2align 3 + .long 4 + .long 16 + .long 5 + .byte 0x47, 0x4e, 0x55, 0 + .long 0xc0000002 + .long 4 + .long 0x00000003 + .long 0 .section .note.GNU-stack,"",@progbits