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 ...

Reply via email to