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.