https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126049
--- Comment #1 from Icenowy Zheng <uwu at icenowy dot me> ---
Analyzing the resulting assembly shows that a -inf is introduced when reducing
the vector:
```
.file "maxx.c"
.option nopic
.attribute arch,
"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zca1p0_zcd1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
.attribute unaligned_access, 0
.attribute stack_align, 16
.text
.align 1
.globl maxx
.type maxx, @function
maxx:
.LFB0:
.cfi_startproc
lui a5,%hi(.LC0)
beq a1,zero,.L4
flw fa5,%lo(.LC0)(a5)
vsetvli a5,zero,e32,m1,ta,ma
vfmv.v.f v1,fa5
.L3:
vsetvli a5,a1,e32,m1,tu,ma
vle32.v v2,0(a0)
slli a4,a5,2
sub a1,a1,a5
add a0,a0,a4
vfmax.vv v1,v2,v1
bne a1,zero,.L3
lui a5,%hi(.LC1)
flw fa5,%lo(.LC1)(a5)
vsetvli a5,zero,e32,m1,ta,ma
vfmv.s.f v2,fa5
vfredmax.vs v1,v1,v2
vfmv.f.s fa0,v1
ret
.L4:
flw fa0,%lo(.LC0)(a5)
ret
.cfi_endproc
.LFE0:
.size maxx, .-maxx
.section .srodata.cst4,"aM",@progbits,4
.align 2
.LC0:
.word 2143289344
.align 2
.LC1:
.word -8388608
.ident "GCC: (GNU) 17.0.0 20260630 (experimental)"
.section .note.GNU-stack,"",@progbits
```
(-8388608 here is -inf, and 2143289344 is the initial nan assigned to val).