https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102107
--- Comment #11 from Paul Clarke <pc at us dot ibm.com> ---
This does produce the issue for me:
--
$ git checkout remotes/vendors/ibm/gcc-11-branch gcc-AT
$ mkdir gcc-AT-build
$ cd gcc-AT-build
$ ../gcc-AT/configure --enable-languages=c,c++ --disable-libada
--disable-libsanitizer --disable-libssp --disable-libgomp --disable-libvtv
--disable-nls --prefix=/home/pc/gcc-AT-install
$ make
$ make install
$ ~/gcc-AT-install/bin/gcc -S -O3 -mcpu=power10 -fverbose-asm r12test2.c
$ grep --before-context=15 bctr r12test2.s
mtctr 12 # func, func
# r12test2.c:3030: }
lwz 12,8(1) #,
# r12test2.c:3013: ++*p_format;
addi 9,9,1 # tmp251, *p_format_31(D),
std 9,0(31) # *p_format_31(D), tmp251
# r12test2.c:3030: }
ld 31,-8(1) #,
mtcrf 8,12 #,
.cfi_restore 72
.cfi_restore 31
.cfi_restore 30
.cfi_restore 28
.cfi_restore 27
# r12test2.c:3014: return (*func)();
bctr # func
--