Partword atomic binaries are not zero extended as they should be.
This patch fixes them to ensure that they are zero extended.
Details
- Reviewers
 nemanjai lei - Group Reviewers
 Restricted Project - Commits
 - rG45ad207e4585: [PowerPC] Add fix to partword atomic operations
 
Diff Detail
- Repository
 - rG LLVM Github Monorepo
 
Event Timeline
LGTM. Of course, please ensure that this fixes the issue when the dependent patch is applied prior to committing this.
| llvm/lib/Target/PowerPC/PPCISelLowering.cpp | ||
|---|---|---|
| 11359–11366 | // Since the shift amount is not a constant, we need to clear // the upper bits with a separate RLWINM.  | |
| llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll | ||
| 104 | Presumably this goes away when https://reviews.llvm.org/D101342 lands? Can you please apply that on top of this patch to make sure? Similarly with line 49.  | |
| llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll | ||
|---|---|---|
| 104 | 
 I have checked this and if I add the patch D101342 then those two lines disappear.  --- a/llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll +++ b/llvm/test/CodeGen/PowerPC/ppc-partword-atomic.ll @@ -46,10 +46,9 @@ define dso_local zeroext i32 @testI8(i8 zeroext %val) local_unnamed_addr #0 { ; PWR9-NEXT: stbcx. 3, 0, 5 ; PWR9-NEXT: bne 0, .LBB0_1 ; PWR9-NEXT: # %bb.2: # %entry -; PWR9-NEXT: clrlwi 3, 4, 24 -; PWR9-NEXT: addis 4, 2, global_int@toc@ha +; PWR9-NEXT: addis 3, 2, global_int@toc@ha ; PWR9-NEXT: lwsync -; PWR9-NEXT: stw 3, global_int@toc@l(4) +; PWR9-NEXT: stw 4, global_int@toc@l(3) ; PWR9-NEXT: li 3, 55 ; PWR9-NEXT: blr entry: @@ -100,10 +99,9 @@ define dso_local zeroext i32 @testI16(i16 zeroext %val) local_unnamed_addr #0 { ; PWR9-NEXT: sthcx. 3, 0, 5 ; PWR9-NEXT: bne 0, .LBB1_1 ; PWR9-NEXT: # %bb.2: # %entry -; PWR9-NEXT: clrlwi 3, 4, 16 -; PWR9-NEXT: addis 4, 2, global_int@toc@ha +; PWR9-NEXT: addis 3, 2, global_int@toc@ha ; PWR9-NEXT: lwsync -; PWR9-NEXT: stw 3, global_int@toc@l(4) +; PWR9-NEXT: stw 4, global_int@toc@l(3) ; PWR9-NEXT: li 3, 55 ; PWR9-NEXT: blr entry:  | |