https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105480
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|powerpc64le-linux |powerpc64*-linux-* --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- During expand: (insn 20 19 21 (set (reg:V2DF 149) (unordered:V2DF (reg:V2DF 128 [ vect__7.7 ]) (reg:V2DF 128 [ vect__7.7 ]))) -1 (nil)) Which is correct. after combine: (insn 26 21 27 3 (set (reg:V2DF 154) (unordered:V2DF (reg:V2DF 144 [ vect__7.8 ]) (reg:V2DF 144 [ vect__7.8 ]))) 1138 {vector_unorderedv2df} (expr_list:REG_DEAD (reg:V2DF 144 [ vect__7.8 ]) (nil))) So basically the splitter here goes wrong: ; For ltgt/uneq/ordered/unordered: ; ltgt: gt(a,b) | gt(b,a) ; uneq: ~(gt(a,b) | gt(b,a)) ; ordered: ge(a,b) | ge(b,a) ; unordered: ~(ge(a,b) | ge(b,a)) (define_insn_and_split Someone else needs to look into making sure these are valid for trapping math case ...