http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46144

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2010-10-23 15:47:45 
UTC ---
(gdb) bt
#0  fancy_abort (file=0x12683d8 "/export/gnu/import/git/gcc/gcc/regcprop.c", 
    line=768, function=0x12687b0 "copyprop_hardreg_forward_1")
    at /export/gnu/import/git/gcc/gcc/diagnostic.c:881
#1  0x00000000009c468d in _fatal_insn (
    msgid=0x126bfb8 "insn does not satisfy its constraints:", 
    insn=0x7ffff195dcf0, 
    file=0x12683d8 "/export/gnu/import/git/gcc/gcc/regcprop.c", line=768, 
    function=0x12687b0 "copyprop_hardreg_forward_1")
    at /export/gnu/import/git/gcc/gcc/rtl-error.c:109
#2  0x00000000009c46ee in _fatal_insn_not_found (insn=0x7ffff195dcf0, 
    file=0x12683d8 "/export/gnu/import/git/gcc/gcc/regcprop.c", line=768, 
    function=0x12687b0 "copyprop_hardreg_forward_1")
    at /export/gnu/import/git/gcc/gcc/rtl-error.c:119
#3  0x0000000000989a83 in copyprop_hardreg_forward_1 (bb=0x7ffff18c0a90, 
    vd=0x19b5e20) at /export/gnu/import/git/gcc/gcc/regcprop.c:768
#4  0x000000000098a907 in copyprop_hardreg_forward ()
    at /export/gnu/import/git/gcc/gcc/regcprop.c:1030
#5  0x000000000094b409 in execute_one_pass (pass=0x17cc220)
    at /export/gnu/import/git/gcc/gcc/passes.c:1560
#6  0x000000000094b5f8 in execute_pass_list (pass=0x17cc220)
    at /export/gnu/import/git/gcc/gcc/passes.c:1615
#7  0x000000000094b619 in execute_pass_list (pass=0x17cbb80)
    at /export/gnu/import/git/gcc/gcc/passes.c:1616
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) f 3
#3  0x0000000000989a83 in copyprop_hardreg_forward_1 (bb=0x7ffff18c0a90, 
    vd=0x19b5e20) at /export/gnu/import/git/gcc/gcc/regcprop.c:768
768        fatal_insn_not_found (insn);
(gdb) call debug_rtx (insn)
(insn 724 701 702 28 (set (reg:V4SF 25 xmm4 [361])
        (xor:V4SF (reg:V4SF 23 xmm2 [orig:229 vect_var_.79 ] [229])
            (reg:V4SF 25 xmm4 [361]))) x.f90:69 1265 {*xorv4sf3}
     (nil))
(gdb) list
763        }
764    
765          set = single_set (insn);
766          extract_insn (insn);
767          if (! constrain_operands (1))
768        fatal_insn_not_found (insn);
769          preprocess_constraints ();
770          alt = which_alternative;
771          n_ops = recog_data.n_operands;
772          is_asm = asm_noperands (PATTERN (insn)) 
(gdb) 

sse.md has

(define_insn "*<code><mode>3"
  [(set (match_operand:SSEMODEF2P 0 "register_operand" "=x")
        (any_logic:SSEMODEF2P
          (match_operand:SSEMODEF2P 1 "nonimmediate_operand" "%0")
          (match_operand:SSEMODEF2P 2 "nonimmediate_operand" "xm")))]
  "SSE_VEC_FLOAT_MODE_P (<MODE>mode)
   && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
{
  if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
    return "<logic>ps\t{%2, %0|%0, %2}";
  else
    return "<logic><ssemodesuffix>\t{%2, %0|%0, %2}";
}
  [(set_attr "type" "sselog")
   (set_attr "mode" "<MODE>")])

This pattern matches the insn only if constrain_operands checks
commutative operands.

Reply via email to