https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112276

--- Comment #5 from Zdenek Sojka <zsojka at seznam dot cz> ---
(In reply to Hongtao.liu from comment #4)
> -(define_split
> -  [(set (match_operand:V2HI 0 "register_operand")
> -        (eq:V2HI
> -          (eq:V2HI
> -            (us_minus:V2HI
> -              (match_operand:V2HI 1 "register_operand")
> -              (match_operand:V2HI 2 "register_operand"))
> -            (match_operand:V2HI 3 "const0_operand"))
> -          (match_operand:V2HI 4 "const0_operand")))]
> -  "TARGET_SSE4_1"
> -  [(set (match_dup 0)
> -        (umin:V2HI (match_dup 1) (match_dup 2)))
> -   (set (match_dup 0)
> -        (eq:V2HI (match_dup 0) (match_dup 2)))])
> 
> the splitter is wrong when op1 == op2.(the original pattern returns 0, after
> splitter, it returns 1)
> So remove the splitter.

Thank you for having a look. I have other testcases, possibly related, that are
being reduced now, failing at -O2 only; so -msse4.2 might not be the only
broken target. I will open a new PR if those will still be broken after this is
fixed; alternatively, I can upload the testcases here, once they are reduced.

Reply via email to