-
Notifications
You must be signed in to change notification settings - Fork 13.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
datetime
tests fail in release mode since 1.73 on powerpc64le
#116582
Comments
Doesn't happen when calling |
opt-bisect points towards a backend issue:
IR for the function looks like this: https://gist.github.com/nikic/6752e057cf4f933e592277e4a9211d6a |
The issue is already introduced during the SDAG layer by a custom combine: https://github.com/llvm/llvm-project/blob/12a4757b0fa25baac853498671a34e2f34f92b80/llvm/lib/Target/PowerPC/PPCISelLowering.cpp#L15570-L15591 This is interchanging |
That case is new in 17, llvm/llvm-project@b0e249d, so it would seem to be a true regression, not just something that we were lucky to miss before due to other perturbations. |
Indeed, all diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 3ed0a261eb76..d4d2da55160e 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/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); This also passes all |
Upstream issue: llvm/llvm-project#68783 |
WG-prioritization assigning priority (Zulip discussion). @rustbot label -I-prioritize +P-high |
The datetime tests have regressed on Fedora
ppc64le
since upgrading to Rust 1.73.0, and I can also reproduce this onrustup
toolchains.https://koschei.fedoraproject.org/build/16447830
I expected to see this happen: all tests pass
Instead, this happened: it passes in debug mode, but fails multiple tests in
--release
. For example:Version it worked on
It most recently worked on: 1.72.1
Version with regression
rustc --version --verbose
:It's no better on
rustc 1.74.0-beta.1 (b5c050feb 2023-10-03)
orrustc 1.75.0-nightly (bf9a1c8a1 2023-10-08)
.As noted above, it also fails on Fedora rawhide's Rust 1.73.0 with LLVM 17. However, it passes on Fedora 38 with Rust 1.73.0 and LLVM 16, so it definitely seems like a codegen regression in 17.
@rustbot modify labels: +A-LLVM +T-compiler +regression-from-stable-to-stable -regression-untriaged
The text was updated successfully, but these errors were encountered: