git: 13de47f0ac00 - main - lang/rust: Update to 1.73.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 24 Oct 2023 10:23:10 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=13de47f0ac007d8a7e66554af5cf0ca5889f9925

commit 13de47f0ac007d8a7e66554af5cf0ca5889f9925
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2023-10-04 14:09:35 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-10-24 10:21:32 +0000

    lang/rust: Update to 1.73.0
    
    Announce:       https://blog.rust-lang.org/2023/10/05/Rust-1.73.0.html
    ChangeLog:      https://github.com/rust-lang/rust/releases/tag/1.73.0
    
    PR:             274499
    Tested by:      mikael,pkubaj
---
 Mk/Uses/cargo.mk                |   2 +-
 lang/rust-bootstrap/Makefile    |   2 +-
 lang/rust-bootstrap/distinfo    |   6 +--
 lang/rust/Makefile              |  15 ++----
 lang/rust/distinfo              | 102 ++++++++++++++++++++--------------------
 lang/rust/files/patch-bug116845 |  34 ++++++++++++++
 6 files changed, 94 insertions(+), 67 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index 8caf60926679..18db16f996cd 100644
--- a/Mk/Uses/cargo.mk
+++ b/Mk/Uses/cargo.mk
@@ -97,7 +97,7 @@ WRKSRC_crate_${_crate}=	${WRKDIR}/${_wrksrc}
 
 CARGO_BUILDDEP?=	yes
 .  if ${CARGO_BUILDDEP:tl} == "yes"
-BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.72.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.73.0:lang/${RUST_DEFAULT}
 .  elif ${CARGO_BUILDDEP:tl} == "any-version"
 BUILD_DEPENDS+=	${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT}
 .  endif
diff --git a/lang/rust-bootstrap/Makefile b/lang/rust-bootstrap/Makefile
index 09067e4ff257..d61b6e1b93f2 100644
--- a/lang/rust-bootstrap/Makefile
+++ b/lang/rust-bootstrap/Makefile
@@ -2,7 +2,7 @@
 # to upload them to ~/public_distfiles on freefall in preparation
 # for the next lang/rust update.
 PORTNAME=	rust
-PORTVERSION=	1.72.0
+PORTVERSION=	1.73.0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/
 PKGNAMEPREFIX=	${FLAVOR:S/_/-/g}-
diff --git a/lang/rust-bootstrap/distinfo b/lang/rust-bootstrap/distinfo
index 5052412ce0de..8cae2863fbb6 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1692897293
-SHA256 (rust/rustc-1.72.0-src.tar.xz) = d307441f8ee78a7e94f72cb5c81383822f13027f79e67a5551bfd2c2d2db3014
-SIZE (rust/rustc-1.72.0-src.tar.xz) = 151630408
+TIMESTAMP = 1696426328
+SHA256 (rust/rustc-1.73.0-src.tar.xz) = 6eaf672dbea2e6596af8c999f5e6924b9af4bb8b02166bfe0b928e68aa75ae62
+SIZE (rust/rustc-1.73.0-src.tar.xz) = 154319536
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index f17d0d8e8aa6..0ac1edc1be37 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	rust
-PORTVERSION?=	1.72.0
+PORTVERSION?=	1.73.0
 PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/:src \
@@ -61,7 +61,7 @@ DOCS_VARS=		_RUST_BUILD_DOCS=true \
 			_RUST_TOOLS+=rustdoc
 DOCS_VARS_OFF=		_RUST_BUILD_DOCS=false
 GDB_RUN_DEPENDS=	${LOCALBASE}/bin/gdb:devel/gdb
-PORT_LLVM_USES=		llvm:min=14,lib,noexport
+PORT_LLVM_USES=		llvm:min=15,lib,noexport
 PORT_LLVM_MAKE_ENV=	RUSTFLAGS="-Lnative=${LOCALBASE}/lib"
 SOURCES_VARS=		_COMPONENTS+=rust-src-${_PACKAGE_VERS} \
 			_RUST_TOOLS+=src
@@ -69,8 +69,8 @@ WASM_VARS=		_COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown
 			_RUST_TARGETS+=wasm32-unknown-unknown
 
 # See WRKSRC/src/stage0.json for the date and version values
-BOOTSTRAPS_DATE?=		2023-07-13
-RUST_BOOTSTRAP_VERSION?=	1.71.0
+BOOTSTRAPS_DATE?=		2023-08-24
+RUST_BOOTSTRAP_VERSION?=	1.72.0
 
 CARGO_VENDOR_DIR?=		${WRKSRC}/vendor
 
@@ -96,13 +96,6 @@ _COMPONENTS+=		cargo-${_PACKAGE_VERS}-${_RUST_TARGET} \
 
 .include <bsd.port.pre.mk>
 
-.ifndef NIGHTLY_DATE
-PATCH_SITES=	https://github.com/rust-lang/rust/commit/
-# LLVM 17 API compatibility fixes
-PATCHFILES=	71958da4854176c50a8b12470b956d5c7ed11817.patch:-p1 \
-		6ddf9128b2b55f9def80af57f7353d2521527c6a.patch:-p1
-.endif
-
 .if ${OPSYS} != FreeBSD
 IGNORE=		is only for FreeBSD
 .endif
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index 2beb9b476377..42e0f64c458d 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,54 +1,54 @@
-TIMESTAMP = 1692897225
-SHA256 (rust/rustc-1.72.0-src.tar.xz) = d307441f8ee78a7e94f72cb5c81383822f13027f79e67a5551bfd2c2d2db3014
-SIZE (rust/rustc-1.72.0-src.tar.xz) = 151630408
-SHA256 (rust/2023-07-13/rustc-1.71.0-aarch64-unknown-freebsd.tar.xz) = 67a63e4bf9f69f0a07a79e759e754d66afdc1a644c08dc699ffb17083e05199e
-SIZE (rust/2023-07-13/rustc-1.71.0-aarch64-unknown-freebsd.tar.xz) = 54896968
-SHA256 (rust/2023-07-13/rust-std-1.71.0-aarch64-unknown-freebsd.tar.xz) = 644b1f08cddb684e19eae04f315c464c1ba1af11c09d59eb4449c1635a7a05f3
-SIZE (rust/2023-07-13/rust-std-1.71.0-aarch64-unknown-freebsd.tar.xz) = 25694436
-SHA256 (rust/2023-07-13/cargo-1.71.0-aarch64-unknown-freebsd.tar.xz) = 9ed2a3f06431a9e962ab29a3a4d4dc5b2e3703460845d9eec45da9f990618fbb
-SIZE (rust/2023-07-13/cargo-1.71.0-aarch64-unknown-freebsd.tar.xz) = 7197836
-SHA256 (rust/2023-07-13/rustc-1.71.0-x86_64-unknown-freebsd.tar.xz) = 5d2b10d7b7db4117627aafe9e2bcc8002e714da44fa9dd3aedbc0e50ffe1dd80
-SIZE (rust/2023-07-13/rustc-1.71.0-x86_64-unknown-freebsd.tar.xz) = 45992472
-SHA256 (rust/2023-07-13/rust-std-1.71.0-x86_64-unknown-freebsd.tar.xz) = 38b75d357110e539af7b6b155903adb8f5800226423da5ada798f7e1f768bb40
-SIZE (rust/2023-07-13/rust-std-1.71.0-x86_64-unknown-freebsd.tar.xz) = 26217172
-SHA256 (rust/2023-07-13/cargo-1.71.0-x86_64-unknown-freebsd.tar.xz) = 1d881ed89e9b4eb686a11bdd2f1bebf907fc2da6061192c40ac579a5b26094c7
-SIZE (rust/2023-07-13/cargo-1.71.0-x86_64-unknown-freebsd.tar.xz) = 7973836
-SHA256 (rust/2023-07-13/rustc-1.71.0-armv7-unknown-freebsd.tar.xz) = f2b9db2d046da7494e7c2b0b613f9f469124b6e3711b4904b7207b8d9c39964c
-SIZE (rust/2023-07-13/rustc-1.71.0-armv7-unknown-freebsd.tar.xz) = 53254816
-SHA256 (rust/2023-07-13/rust-std-1.71.0-armv7-unknown-freebsd.tar.xz) = a81c72e919a340bdc93e2009d8623fa47f01db342a170d0dd563a06bc00ccb30
-SIZE (rust/2023-07-13/rust-std-1.71.0-armv7-unknown-freebsd.tar.xz) = 25050696
-SHA256 (rust/2023-07-13/cargo-1.71.0-armv7-unknown-freebsd.tar.xz) = bb27f0be22140081b613802cd9f0c38682bc02c7716d41d9ccaa0d861cfc2d47
-SIZE (rust/2023-07-13/cargo-1.71.0-armv7-unknown-freebsd.tar.xz) = 7071008
-SHA256 (rust/2023-07-13/rustc-1.71.0-i686-unknown-freebsd.tar.xz) = 23f9a1fc89db35766dca997bd1f841dd058610f1761989105097710586407c57
-SIZE (rust/2023-07-13/rustc-1.71.0-i686-unknown-freebsd.tar.xz) = 61659320
-SHA256 (rust/2023-07-13/rust-std-1.71.0-i686-unknown-freebsd.tar.xz) = e6b35baff3bcc7dd7feb1447eeaef54fef4136c75af2e6f4b218ff52507b9d63
-SIZE (rust/2023-07-13/rust-std-1.71.0-i686-unknown-freebsd.tar.xz) = 26212032
-SHA256 (rust/2023-07-13/cargo-1.71.0-i686-unknown-freebsd.tar.xz) = eca40d3ec40bad1aec54851768e3a307db38d5989a7b2be80deb4a8dd2983bd2
-SIZE (rust/2023-07-13/cargo-1.71.0-i686-unknown-freebsd.tar.xz) = 8338280
-SHA256 (rust/2023-07-13/rustc-1.71.0-powerpc-unknown-freebsd.tar.xz) = d4bd4f7c38ede47def389ff8b8bf1f994fd15f9ae05824facb48bf8ada1d7ba2
-SIZE (rust/2023-07-13/rustc-1.71.0-powerpc-unknown-freebsd.tar.xz) = 60245728
-SHA256 (rust/2023-07-13/rust-std-1.71.0-powerpc-unknown-freebsd.tar.xz) = 48c3f746fdcedb1decefd5f9bd70343b0b8b7573ffd0b65ea77a67b0ce90ab60
-SIZE (rust/2023-07-13/rust-std-1.71.0-powerpc-unknown-freebsd.tar.xz) = 24179884
-SHA256 (rust/2023-07-13/cargo-1.71.0-powerpc-unknown-freebsd.tar.xz) = 30e1c54c7844094f6c463cc4a9be7455e207db598d12fb9203e47d6951b7de53
-SIZE (rust/2023-07-13/cargo-1.71.0-powerpc-unknown-freebsd.tar.xz) = 8248108
-SHA256 (rust/2023-07-13/rustc-1.71.0-powerpc64-unknown-freebsd.tar.xz) = e57a31a65f3ee3b3540c17ed20ea72895a9ea063a5cd7f621571947c75a982cd
-SIZE (rust/2023-07-13/rustc-1.71.0-powerpc64-unknown-freebsd.tar.xz) = 58478560
-SHA256 (rust/2023-07-13/rust-std-1.71.0-powerpc64-unknown-freebsd.tar.xz) = 5ba721993d54d15e6fe87001641eaf30aab2fd099e03119656898809bb607db1
-SIZE (rust/2023-07-13/rust-std-1.71.0-powerpc64-unknown-freebsd.tar.xz) = 24186732
-SHA256 (rust/2023-07-13/cargo-1.71.0-powerpc64-unknown-freebsd.tar.xz) = c46c43a943f2ff631a53c4efb5882756ec0a164368135a54d0f719a65333d1a4
-SIZE (rust/2023-07-13/cargo-1.71.0-powerpc64-unknown-freebsd.tar.xz) = 7780232
-SHA256 (rust/2023-07-13/rustc-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = aefb51616e8165e6dac99291520746a024b71d28c814a2570817473f1a6a20d2
-SIZE (rust/2023-07-13/rustc-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = 60218776
-SHA256 (rust/2023-07-13/rust-std-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = 2f80c9979e9a9dfe4f00fc62fae02656b5263e55c73b990e14b2140cdc620dc5
-SIZE (rust/2023-07-13/rust-std-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = 24236100
-SHA256 (rust/2023-07-13/cargo-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = 17d3145ab8f3d8d28562364f40f25db2fda9b526044e598095eea5cc28e56fec
-SIZE (rust/2023-07-13/cargo-1.71.0-powerpc64le-unknown-freebsd.tar.xz) = 8014976
-SHA256 (rust/2023-07-13/rustc-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = efb38a182166f01d4d31a6534afcbaff3c6a1f58bf90f8db5cfd8016ee4ac520
-SIZE (rust/2023-07-13/rustc-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = 70827420
-SHA256 (rust/2023-07-13/rust-std-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = 4ca3b70a9839e567b62fdc71bcbf35782262ec97c35c5a29a02309e8b76efd63
-SIZE (rust/2023-07-13/rust-std-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = 24375500
-SHA256 (rust/2023-07-13/cargo-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = b49977e17a42a9175cfa016941a6006f8e188f610f4ed59945f114fcb9f04820
-SIZE (rust/2023-07-13/cargo-1.71.0-riscv64gc-unknown-freebsd.tar.xz) = 10130160
+TIMESTAMP = 1697357059
+SHA256 (rust/rustc-1.73.0-src.tar.xz) = 6eaf672dbea2e6596af8c999f5e6924b9af4bb8b02166bfe0b928e68aa75ae62
+SIZE (rust/rustc-1.73.0-src.tar.xz) = 154319536
+SHA256 (rust/2023-08-24/rustc-1.72.0-aarch64-unknown-freebsd.tar.xz) = f87def3751c86536dc8c2a1ac493d2832bdfb791a31a4782d5f6d47ae384cd5b
+SIZE (rust/2023-08-24/rustc-1.72.0-aarch64-unknown-freebsd.tar.xz) = 54855264
+SHA256 (rust/2023-08-24/rust-std-1.72.0-aarch64-unknown-freebsd.tar.xz) = 6712823eccc77234fe914992f26c37e72e050c85dc78d81f8bcfd5a6c0177779
+SIZE (rust/2023-08-24/rust-std-1.72.0-aarch64-unknown-freebsd.tar.xz) = 26185760
+SHA256 (rust/2023-08-24/cargo-1.72.0-aarch64-unknown-freebsd.tar.xz) = 957c3061c2d4c9bb03c74c059cdba16da5d8c1ba28ce671d762552e67fe02390
+SIZE (rust/2023-08-24/cargo-1.72.0-aarch64-unknown-freebsd.tar.xz) = 8065312
+SHA256 (rust/2023-08-24/rustc-1.72.0-x86_64-unknown-freebsd.tar.xz) = 7e913d82625e1fa9daaf89948d657944685be4bc3b5e136a312f9dc4230d72f2
+SIZE (rust/2023-08-24/rustc-1.72.0-x86_64-unknown-freebsd.tar.xz) = 46396244
+SHA256 (rust/2023-08-24/rust-std-1.72.0-x86_64-unknown-freebsd.tar.xz) = b4982586d84b8d419943083d28f3b3f3992eec99b13dbd7c0a5a8e63bfe3415f
+SIZE (rust/2023-08-24/rust-std-1.72.0-x86_64-unknown-freebsd.tar.xz) = 26854796
+SHA256 (rust/2023-08-24/cargo-1.72.0-x86_64-unknown-freebsd.tar.xz) = 0fd521fb5bf0e3a58210eeb242a22f24f92a94b886905f4b895bc36782a7dd78
+SIZE (rust/2023-08-24/cargo-1.72.0-x86_64-unknown-freebsd.tar.xz) = 8866252
+SHA256 (rust/2023-08-24/rustc-1.72.0-armv7-unknown-freebsd.tar.xz) = cd8dfc34e5901dd2845835c7c7978f6a5725e15a3925eaba551b49e104355d4b
+SIZE (rust/2023-08-24/rustc-1.72.0-armv7-unknown-freebsd.tar.xz) = 55045532
+SHA256 (rust/2023-08-24/rust-std-1.72.0-armv7-unknown-freebsd.tar.xz) = 519b61de0c56b11f5403a31f5198d93b2109ce7e9777df4899943c97c95c8ee0
+SIZE (rust/2023-08-24/rust-std-1.72.0-armv7-unknown-freebsd.tar.xz) = 25630140
+SHA256 (rust/2023-08-24/cargo-1.72.0-armv7-unknown-freebsd.tar.xz) = 90287dcb755268a67c5959c36d21270d04685ee55878d0314998272b32738dc1
+SIZE (rust/2023-08-24/cargo-1.72.0-armv7-unknown-freebsd.tar.xz) = 7944012
+SHA256 (rust/2023-08-24/rustc-1.72.0-i686-unknown-freebsd.tar.xz) = 103910d967b01ad2a27a886bfca8b64842be9a2b044074f58f56c6cccd2270fe
+SIZE (rust/2023-08-24/rustc-1.72.0-i686-unknown-freebsd.tar.xz) = 61326204
+SHA256 (rust/2023-08-24/rust-std-1.72.0-i686-unknown-freebsd.tar.xz) = 1747a9d544c759b8fab05a172f90c5eabde9be4b370d564177487be56549ae52
+SIZE (rust/2023-08-24/rust-std-1.72.0-i686-unknown-freebsd.tar.xz) = 26697152
+SHA256 (rust/2023-08-24/cargo-1.72.0-i686-unknown-freebsd.tar.xz) = eaed4aef4ad1341ebf990fdd264fb639635bc4840221074534af74e443f45f51
+SIZE (rust/2023-08-24/cargo-1.72.0-i686-unknown-freebsd.tar.xz) = 9249016
+SHA256 (rust/2023-08-24/rustc-1.72.0-powerpc-unknown-freebsd.tar.xz) = 43f44d1fd8194921b391d5c46c30163e42742073015dcc713c34ff35a0067bb5
+SIZE (rust/2023-08-24/rustc-1.72.0-powerpc-unknown-freebsd.tar.xz) = 60208348
+SHA256 (rust/2023-08-24/rust-std-1.72.0-powerpc-unknown-freebsd.tar.xz) = de731b713a68c6db6e2bf05a02b8fdee0969cdb80dda756c41956d9a00a3194c
+SIZE (rust/2023-08-24/rust-std-1.72.0-powerpc-unknown-freebsd.tar.xz) = 24553168
+SHA256 (rust/2023-08-24/cargo-1.72.0-powerpc-unknown-freebsd.tar.xz) = d266f36de042cad9dd310febad76cf8d11ac1f188e2ce751b95841d7724ae4c8
+SIZE (rust/2023-08-24/cargo-1.72.0-powerpc-unknown-freebsd.tar.xz) = 9247480
+SHA256 (rust/2023-08-24/rustc-1.72.0-powerpc64-unknown-freebsd.tar.xz) = 333d82f18d75b3fcf9ee7afc578bd0ee09a1a1c1f8f9308d0b1c4f9159ca4d2f
+SIZE (rust/2023-08-24/rustc-1.72.0-powerpc64-unknown-freebsd.tar.xz) = 58536072
+SHA256 (rust/2023-08-24/rust-std-1.72.0-powerpc64-unknown-freebsd.tar.xz) = d371b600719dc4f500d6a453d64fc713fba0a188ad6c02c72fe25e2e413468a8
+SIZE (rust/2023-08-24/rust-std-1.72.0-powerpc64-unknown-freebsd.tar.xz) = 24770180
+SHA256 (rust/2023-08-24/cargo-1.72.0-powerpc64-unknown-freebsd.tar.xz) = ba4b5d2df913151e70b7d406c49163915b640f7ab6a4360ce0132e5cfa5ad891
+SIZE (rust/2023-08-24/cargo-1.72.0-powerpc64-unknown-freebsd.tar.xz) = 8793828
+SHA256 (rust/2023-08-24/rustc-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = 44eb1bf540f146fb8fafa7585639b08592f0934e81cc95ae4bfdd7d8662da0ad
+SIZE (rust/2023-08-24/rustc-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = 60191980
+SHA256 (rust/2023-08-24/rust-std-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = 656950dca59bf303e40263f92694242ec62d992f08a224c600765254e6a20acc
+SIZE (rust/2023-08-24/rust-std-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = 24904632
+SHA256 (rust/2023-08-24/cargo-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = a2d11bb9a49f91e3da992fd4d8b141d7221c218a7b2e07af4d1bb486ba95253f
+SIZE (rust/2023-08-24/cargo-1.72.0-powerpc64le-unknown-freebsd.tar.xz) = 9067788
+SHA256 (rust/2023-08-24/rustc-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = a0b184b96203a4bd99c78ff61f228f843a6bfbdb6a7c690f1424e55a78c44e41
+SIZE (rust/2023-08-24/rustc-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = 70320872
+SHA256 (rust/2023-08-24/rust-std-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = 24904a553337220e8b50caaec5fe0309c3ef40c58b57102e2b9ee9131c3b981c
+SIZE (rust/2023-08-24/rust-std-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = 24923728
+SHA256 (rust/2023-08-24/cargo-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = 52ef515ce550b58954cc71a19696e8bdeee24037273458d4115259725343bd40
+SIZE (rust/2023-08-24/cargo-1.72.0-riscv64gc-unknown-freebsd.tar.xz) = 11394328
 SHA256 (rust/71958da4854176c50a8b12470b956d5c7ed11817.patch) = 5a6b67dfc1218ea953421816834ffe3aa8ac1fc078dfaea4ebab121460ca5211
 SIZE (rust/71958da4854176c50a8b12470b956d5c7ed11817.patch) = 2007
 SHA256 (rust/6ddf9128b2b55f9def80af57f7353d2521527c6a.patch) = 6eaaaf6714c496b610712aa9ecbe1a1614e042323ec872fbf31a0a74c9020f29
diff --git a/lang/rust/files/patch-bug116845 b/lang/rust/files/patch-bug116845
new file mode 100644
index 000000000000..a8ed00dfa805
--- /dev/null
+++ b/lang/rust/files/patch-bug116845
@@ -0,0 +1,34 @@
+From 491a91e8eea27fab4d8123cbfbb01bf1cf251b9c Mon Sep 17 00:00:00 2001
+From: Nikita Popov <npopov@redhat.com>
+Date: Thu, 12 Oct 2023 09:32:17 +0200
+Subject: [PATCH] [PowerPC] Use zext instead of anyext in custom and combine
+ (#68784)
+
+This custom combine currently converts `and(anyext(x),c)` into
+`anyext(and(x,c))`. This is not correct, because the original expression
+guaranteed that the high bits are zero, while the new one sets them to
+undef.
+
+Emit `zext(and(x,c))` instead.
+
+Fixes https://github.com/llvm/llvm-project/issues/68783.
+
+(cherry picked from commit 127ed9ae266ead58aa525f74f4c86841f6674793)
+---
+ llvm/lib/Target/PowerPC/PPCISelLowering.cpp     | 2 +-
+ llvm/test/CodeGen/PowerPC/and-extend-combine.ll | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+index 3ed0a261eb769a1..d4d2da55160e552 100644
+--- src/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
++++ src/llvm-project/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+@@ -15527,7 +15527,7 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
+       break;
+     SDValue ConstOp = DAG.getConstant(Imm, dl, MVT::i32);
+     SDValue NarrowAnd = DAG.getNode(ISD::AND, dl, MVT::i32, NarrowOp, ConstOp);
+-    return DAG.getAnyExtOrTrunc(NarrowAnd, dl, N->getValueType(0));
++    return DAG.getZExtOrTrunc(NarrowAnd, dl, N->getValueType(0));
+   }
+   case ISD::SHL:
+     return combineSHL(N, DCI);