From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1709828-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 770CB15813A for <garchives@archives.gentoo.org>; Thu, 16 Jan 2025 19:26:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 80107E07E1; Thu, 16 Jan 2025 19:26:10 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6B006E07E1 for <gentoo-commits@lists.gentoo.org>; Thu, 16 Jan 2025 19:26:10 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8320D343017 for <gentoo-commits@lists.gentoo.org>; Thu, 16 Jan 2025 19:26:09 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BF5021F9A for <gentoo-commits@lists.gentoo.org>; Thu, 16 Jan 2025 19:26:07 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1737055541.e82087ca0b0e9bf65d7292ce7cd6150298bbcaa9.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/orc/, dev-lang/orc/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-lang/orc/files/orc-0.4.40-avx.patch dev-lang/orc/orc-0.4.40-r1.ebuild X-VCS-Directories: dev-lang/orc/files/ dev-lang/orc/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: e82087ca0b0e9bf65d7292ce7cd6150298bbcaa9 X-VCS-Branch: master Date: Thu, 16 Jan 2025 19:26:07 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 508679a2-7829-4eeb-a89f-b3bb906593d1 X-Archives-Hash: f8f00de4cc4c8b434ed6522be9196175 commit: e82087ca0b0e9bf65d7292ce7cd6150298bbcaa9 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Thu Jan 16 19:19:09 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Jan 16 19:25:41 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e82087ca dev-lang/orc: backport AVX backend fix Closes: https://bugs.gentoo.org/948164 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-lang/orc/files/orc-0.4.40-avx.patch | 77 +++++++++++++++++++++++++++++++++ dev-lang/orc/orc-0.4.40-r1.ebuild | 45 +++++++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/dev-lang/orc/files/orc-0.4.40-avx.patch b/dev-lang/orc/files/orc-0.4.40-avx.patch new file mode 100644 index 000000000000..41dddd0c7248 --- /dev/null +++ b/dev-lang/orc/files/orc-0.4.40-avx.patch @@ -0,0 +1,77 @@ +https://bugs.gentoo.org/948164 +https://gitlab.freedesktop.org/gstreamer/orc/-/issues/82 +https://gitlab.freedesktop.org/gstreamer/orc/-/commit/8e48a61e27f4d3e60bf2e3e7873fd61363db6ff8 + +From 8e48a61e27f4d3e60bf2e3e7873fd61363db6ff8 Mon Sep 17 00:00:00 2001 +From: "L. E. Segovia" <amy@centricular.com> +Date: Wed, 15 Jan 2025 22:20:14 +0000 +Subject: [PATCH] avx: Fix sqrtps encoding, it's an unary operator + +Fixes #82 + +Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/213> +--- + orc/orcavx.h | 4 ++-- + orc/orcprogram-c.c | 1 + + orc/orcrules-avx.c | 2 +- + testsuite/test.orc | 8 ++++++++ + 4 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/orc/orcavx.h b/orc/orcavx.h +index f564b63f..ca95bd02 100644 +--- a/orc/orcavx.h ++++ b/orc/orcavx.h +@@ -224,8 +224,8 @@ ORC_API void orc_avx_restore_mxcsr (OrcCompiler *compiler); + #define orc_avx_emit_mulps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_mulps, 32, s1, s2, d, ORC_X86_AVX_VEX256_PREFIX) + #define orc_avx_sse_emit_divps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_divps, 32, s1, s2, d, ORC_X86_AVX_VEX128_PREFIX) + #define orc_avx_emit_divps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_divps, 32, s1, s2, d, ORC_X86_AVX_VEX256_PREFIX) +-#define orc_avx_sse_emit_sqrtps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_sqrtps, 32, s1, s2, d, ORC_X86_AVX_VEX128_PREFIX) +-#define orc_avx_emit_sqrtps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_sqrtps, 32, s1, s2, d, ORC_X86_AVX_VEX256_PREFIX) ++#define orc_avx_sse_emit_sqrtps(p,s1,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_sqrtps, 32, s1, 0, d, ORC_X86_AVX_VEX128_PREFIX) ++#define orc_avx_emit_sqrtps(p,s1,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_sqrtps, 32, s1, 0, d, ORC_X86_AVX_VEX256_PREFIX) + #define orc_avx_sse_emit_andps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_andps, 32, s1, s2, d, ORC_X86_AVX_VEX128_PREFIX) + #define orc_avx_emit_andps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_andps, 32, s1, s2, d, ORC_X86_AVX_VEX256_PREFIX) + #define orc_avx_sse_emit_orps(p,s1,s2,d) orc_vex_emit_cpuinsn_size(p, ORC_X86_orps, 32, s1, s2, d, ORC_X86_AVX_VEX128_PREFIX) +diff --git a/orc/orcprogram-c.c b/orc/orcprogram-c.c +index 49e0b73b..1c9ff7cf 100644 +--- a/orc/orcprogram-c.c ++++ b/orc/orcprogram-c.c +@@ -106,6 +106,7 @@ orc_target_c_get_asm_preamble (void) + { + return "\n" + "/* begin Orc C target preamble */\n" ++ "#include <math.h>\n" + "#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))\n" + "#define ORC_ABS(a) ((a)<0 ? -(a) : (a))\n" + "#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))\n" +diff --git a/orc/orcrules-avx.c b/orc/orcrules-avx.c +index 66925982..5cffe145 100644 +--- a/orc/orcrules-avx.c ++++ b/orc/orcrules-avx.c +@@ -2678,7 +2678,7 @@ BINARY (addf, addps) + BINARY (subf, subps) + BINARY (mulf, mulps) + BINARY (divf, divps) +-BINARY (sqrtf, sqrtps) ++UNARY (sqrtf, sqrtps) + BINARY (orf, orps) + BINARY (andf, andps) + +diff --git a/testsuite/test.orc b/testsuite/test.orc +index 3e9c5790..9ff53236 100644 +--- a/testsuite/test.orc ++++ b/testsuite/test.orc +@@ -2806,3 +2806,11 @@ x4 addb argb, x, c128 + mulslq t1, d1, p1 + shrsq t1, t1, 27 + convql d1, t1 ++ ++.function sqrt_nx ++.dest 4 dst float ++.source 4 src float ++.floatparam 4 k ++.temp 4 tmp ++sqrtf tmp, src ++mulf dst, tmp, k +-- +GitLab diff --git a/dev-lang/orc/orc-0.4.40-r1.ebuild b/dev-lang/orc/orc-0.4.40-r1.ebuild new file mode 100644 index 000000000000..2a32020e4637 --- /dev/null +++ b/dev-lang/orc/orc-0.4.40-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson-multilib + +DESCRIPTION="The Oil Runtime Compiler, a just-in-time compiler for array operations" +HOMEPAGE="https://gstreamer.freedesktop.org/" +SRC_URI="https://gstreamer.freedesktop.org/src/${PN}/${P}.tar.xz" + +LICENSE="BSD BSD-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +RESTRICT="!test? ( test )" +IUSE="gtk-doc static-libs test" + +BDEPEND=" + gtk-doc? ( + dev-util/gtk-doc + app-text/docbook-xml-dtd:4.1.2 + app-text/docbook-xml-dtd:4.3 + ) +" + +DOCS=( CONTRIBUTING.md README RELEASE ) + +PATCHES=( + "${FILESDIR}"/${P}-avx.patch +) + +multilib_src_configure() { + # FIXME: handle backends per arch? What about cross-compiling for the other arches? + local emesonargs=( + -Ddefault_library=$(usex static-libs both shared) + -Dorc-backend=all + -Dorc-test=enabled + -Dbenchmarks=disabled + -Dexamples=disabled + $(meson_native_use_feature gtk-doc gtk_doc) + $(meson_feature test tests) + -Dtools=enabled # requires orc-test + ) + meson_src_configure +}