https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71310
--- Comment #3 from Anton Blanchard <anton at samba dot org> --- Another case found in the kernel: struct mmu_gather { long end; int fullmm : 1; }; void __tlb_reset_range(struct mmu_gather *p1) { if (p1->fullmm) p1->end = 0; } void tlb_gather_mmu(struct mmu_gather *p1) { p1->fullmm = 1; __tlb_reset_range(p1); } 30: 08 00 23 89 lbz r9,8(r3) 34: 01 00 29 61 ori r9,r9,1 38: 08 00 23 99 stb r9,8(r3) 3c: 00 00 42 60 ori r2,r2,0 40: 08 00 23 e9 ld r9,8(r3) 44: 01 00 2a 71 andi. r10,r9,1 48: 0c 00 82 41 beq 54 <tlb_gather_mmu+0x24> 4c: 00 00 20 39 li r9,0 50: 00 00 23 f9 std r9,0(r3) 54: 20 00 80 4e blr