https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80134
Bug ID: 80134 Summary: powerpc: loop on p[i] and *p++ should give the same code Product: gcc Version: 5.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: christophe.le...@c-s.fr Target Milestone: --- The below code should give the same code, shouldn't depend on whether we use p[i] or *p++ void memset32a(int *p, int v, unsigned int c) { int i; for (i = 0; i < c; i++) p[i] = v; } void memset32b(int *p, int v, unsigned int c) { int i; for (i = 0; i < c; i++) *p++ = v; } test4.o: file format elf32-powerpc Disassembly of section .text: 00000000 <memset32a>: 0: 2c 05 00 00 cmpwi r5,0 4: 4d 82 00 20 beqlr 8: 54 a9 10 3a rlwinm r9,r5,2,0,29 c: 39 29 ff fc addi r9,r9,-4 10: 55 29 f0 be rlwinm r9,r9,30,2,31 14: 39 29 00 01 addi r9,r9,1 18: 7d 29 03 a6 mtctr r9 1c: 38 63 ff fc addi r3,r3,-4 20: 94 83 00 04 stwu r4,4(r3) 24: 42 00 ff fc bdnz 20 <memset32a+0x20> 28: 4e 80 00 20 blr 0000002c <memset32b>: 2c: 2c 05 00 00 cmpwi r5,0 30: 38 63 ff fc addi r3,r3,-4 34: 4d 82 00 20 beqlr 38: 7c a9 03 a6 mtctr r5 3c: 94 83 00 04 stwu r4,4(r3) 40: 42 00 ff fc bdnz 3c <memset32b+0x10> 44: 4e 80 00 20 blr