https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71311
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's rhfuhf.F:ROFOCK. Disabling vectorization fixes it. One notable
difference
before vectorization MIN/MAX recognition caused by missing swapped comparison
handling in
/* Transform (@0 < @1 and @0 < @2) to use min,
(@0 > @1 and @0 > @2) to use max */
(for op (lt le gt ge)
ext (min min max max)
(simplify
(bit_and (op:s @0 @1) (op:s @0 @2))
(if (INTEGRAL_TYPE_P (TREE_TYPE (@0)))
(op @0 (ext @1 @2)))))
we'd need to add
/* Transform (@1 < @0 and @2 < @0) to use min,
(@1 > @0 and @2 > @0) to use max */
(for op (lt le gt ge)
ext (max max min min)
(simplify
(bit_and (op:s @1 @0) (op:s @2 @0))
(if (INTEGRAL_TYPE_P (TREE_TYPE (@0)))
(op (ext @1 @2) @0))))
plus a case for the operand order with @1 @0 @0 @2 (and adding :c to the
bit_and).
Adding the above "fixes" gamess, making the issue latent again.