[Bug target/95083] x86 fp_movcc expansion depends on real_cst sharing

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed May 13 14:13:25 GMT 2020


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

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
It looks to me that a couple of (scalar) splitters are missing in sse.md.

There is vector

(define_insn_and_split "*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt"

Defined as:

  [(set (match_operand:VF_128_256 0 "register_operand" "=Yr,*x,x")
        (unspec:VF_128_256
          [(match_operand:VF_128_256 1 "register_operand" "0,0,x")
           (match_operand:VF_128_256 2 "vector_operand" "YrBm,*xBm,xm")
           (lt:VF_128_256
             (match_operand:<sseintvecmode> 3 "register_operand" "Yz,Yz,x")
             (match_operand:<sseintvecmode> 4 "const0_operand" "C,C,C"))]
          UNSPEC_BLENDV))]

(please note const0 operand 4).

Probably similar pattern is missing that would degrade to MIN/MAX, for vector
and scalar versions.


More information about the Gcc-bugs mailing list