aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2026-02-12 14:41:00 +0100
committerGitHub <noreply@github.com>2026-02-12 14:41:00 +0100
commit4167b285e228ee1cfff77f30eee66cbc7b4dd3db (patch)
treebf96084da188ce1302998c6959825770fa626e3d /llvm/lib
parentdcb38a4ef788be1276ac1aee5b48a400dd18013f (diff)
downloadllvm-4167b285e228ee1cfff77f30eee66cbc7b4dd3db.tar.gz
llvm-4167b285e228ee1cfff77f30eee66cbc7b4dd3db.tar.bz2
llvm-4167b285e228ee1cfff77f30eee66cbc7b4dd3db.zip
[AggressiveInstCombine] Create zext during store merge (#181125)
The top extracted value can include shifted-in zero bits. In that case we should emit a zext before the new store. Fixes https://github.com/llvm/llvm-project/issues/181117.
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp b/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
index 3341368208c2..797fabde3f25 100644
--- a/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+++ b/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
@@ -915,7 +915,7 @@ static bool mergeConsecutivePartStores(ArrayRef<PartStore> Parts,
Value *Val = First.Val;
if (First.ValOffset != 0)
Val = Builder.CreateLShr(Val, First.ValOffset);
- Val = Builder.CreateTrunc(Val, NewTy);
+ Val = Builder.CreateZExtOrTrunc(Val, NewTy);
StoreInst *Store = Builder.CreateAlignedStore(
Val, First.Store->getPointerOperand(), First.Store->getAlign());