https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118696
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- --- gcc/config/s390/vector.md.jj 2025-01-24 17:37:48.987458141 +0100 +++ gcc/config/s390/vector.md 2025-01-30 09:10:53.413542300 +0100 @@ -2166,7 +2166,7 @@ (define_insn_and_split "*vec_cmpgt<mode> (vec_duplicate:V2DI (vec_select:DI (match_dup 4) - (parallel [(const_int 1)])))) + (parallel [(const_int 0)])))) (set (match_dup 0) (subreg:<MODE> (match_dup 4) 0))] { @@ -2198,7 +2198,7 @@ (define_insn_and_split "*vec_cmpgtu<mode (vec_duplicate:V2DI (vec_select:DI (match_dup 4) - (parallel [(const_int 1)])))) + (parallel [(const_int 0)])))) (set (match_dup 0) (subreg:<MODE> (match_dup 4) 0))] { fixes this testcase, but let me work on a testcase that tests all the different eq/ne/gt/le/gtu/leu possibilities for hi vs. low parts.