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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-06-14
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Target Milestone|---                         |12.3
                 CC|                            |liuhongt at gcc dot gnu.org

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Instruction does not accept memory operand for operand 3:

(define_insn_and_split
"*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint"
  [(set (match_operand:<ssebytemode> 0 "register_operand" "=Yr,*x,x")
        (unspec:<ssebytemode>
          [(match_operand:<ssebytemode> 1 "register_operand" "0,0,x")
           (match_operand:<ssebytemode> 2 "vector_operand" "YrBm,*xBm,xm")
           (subreg:<ssebytemode>
             (lt:VI48_AVX
               (match_operand:VI48_AVX 3 "register_operand" "Yz,Yz,x")
               (match_operand:VI48_AVX 4 "const0_operand")) 0)]
          UNSPEC_BLENDV))]

The problematic insn is:

(define_insn_and_split "*avx_cmp<mode>3_ltint_not"
 [(set (match_operand:VI48_AVX  0 "register_operand")
       (vec_merge:VI48_AVX
         (match_operand:VI48_AVX 1 "vector_operand")
         (match_operand:VI48_AVX 2 "vector_operand")
         (unspec:<avx512fmaskmode>
           [(subreg:VI48_AVX
            (not:<ssebytemode>
              (match_operand:<ssebytemode> 3 "vector_operand")) 0)
            (match_operand:VI48_AVX 4 "const0_operand")
            (match_operand:SI 5 "const_0_to_7_operand")]
            UNSPEC_PCMP)))]

which gets split to the above pattern.

In the preparation statements we have:

  if (!MEM_P (operands[3]))
    operands[3] = force_reg (<ssebytemode>mode, operands[3]);
  operands[3] = lowpart_subreg (<MODE>mode, operands[3], <ssebytemode>mode);

Which won't fly when operand 3 is memory operand...

CC author, g:8fa7216ae0d8

Reply via email to