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

--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Rainer Orth from comment #1)
> Created attachment 51632 [details]
> 32-bit avx512f-pr96891-3.s

It relies on the existence of the pattern one_cmpldi2_doubleword, so that the
avx512bw_cmpv64qi3 and one_cmpldi2_doubleword will be combined to
avx512bw_cmpv64qi3 w/ adjustment of imm operand, but on 32-bit Solaris/x86 
one_cmpldi2_doubleword  is not existed.

(define_expand "one_cmpl<mode>2"
  [(set (match_operand:SWIM1248s 0 "nonimmediate_operand")
        (not:SWIM1248s (match_operand:SWIM1248s 1 "nonimmediate_operand")))]

(define_mode_iterator SWIM1248s
        [(QI "TARGET_QIMODE_MATH")
         (HI "TARGET_HIMODE_MATH")
         SI (DI "TARGET_64BIT || (TARGET_STV && TARGET_SSE2)")])

mstv
Target Mask(STV) Save
Disable Scalar to Vector optimization pass transforming 64-bit integer
computations into a vector ones.

Guess stv is disabled on on 32-bit Solaris/x86, if that, the fail should be
expected and xfail should be added for 32-bit Solaris/x86

Reply via email to