From: Uros Bizjak Date: Wed, 17 Jul 2019 18:32:36 +0000 (+0200) Subject: i386.md (*add3_doubleword): Remove redundant constraints. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3697a5b8db822f91fad4516b3c625ff2f48993ce;p=gcc.git i386.md (*add3_doubleword): Remove redundant constraints. * config/i386/i386.md (*add3_doubleword): Remove redundant constraints. (*add_1): Ditto. (*addhi_1): Ditto. (*addqi_1): Ditto. (*addqi_1_slp): Ditto. (*add_2): Ditto. (*addv4): Ditto. (*sub3_doubleword): Ditto. (*sub_1): Ditto. (*subqi_1_slp): Ditto. (*sub_2): Ditto. (*subv4): Ditto. (*sub_3): Ditto. (@add3_carry): Ditto. (@sub3_carry): Ditto. (*add3_cc_overflow_1): Ditto. (*add3_zext_cc_overflow_2): Ditto. (*anddi_1): Ditto. (*and_1): Ditto. (*andqi_1): Ditto. (*andqi_1_slp): Ditto. (*anddi_2): Ditto. (*andqi_2_maybe_si): Ditto. (*and_2): Ditto. (*andqi_2_slp): Ditto. (*_1): Ditto. (*qi_1): Ditto. (*qi_1_slp): Ditto. (*_2): Ditto. (*qi_2_slp): Ditto. From-SVN: r273554 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26c647f3f46..c43cf95f4e0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,7 +1,41 @@ +2019-07-17 Uroš Bizjak + + * config/i386/i386.md (*add3_doubleword): + Remove redundant constraints. + (*add_1): Ditto. + (*addhi_1): Ditto. + (*addqi_1): Ditto. + (*addqi_1_slp): Ditto. + (*add_2): Ditto. + (*addv4): Ditto. + (*sub3_doubleword): Ditto. + (*sub_1): Ditto. + (*subqi_1_slp): Ditto. + (*sub_2): Ditto. + (*subv4): Ditto. + (*sub_3): Ditto. + (@add3_carry): Ditto. + (@sub3_carry): Ditto. + (*add3_cc_overflow_1): Ditto. + (*add3_zext_cc_overflow_2): Ditto. + (*anddi_1): Ditto. + (*and_1): Ditto. + (*andqi_1): Ditto. + (*andqi_1_slp): Ditto. + (*anddi_2): Ditto. + (*andqi_2_maybe_si): Ditto. + (*and_2): Ditto. + (*andqi_2_slp): Ditto. + (*_1): Ditto. + (*qi_1): Ditto. + (*qi_1_slp): Ditto. + (*_2): Ditto. + (*qi_2_slp): Ditto. + 2019-07-17 Jan Hubicka * alias.c (record_component_aliases): Do not simplify pointed-to - types of ODR types + types of ODR types. 2019-07-17 Uroš Bizjak diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 47e36d442f2..62485c34a96 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -5337,11 +5337,10 @@ "ix86_expand_binary_operator (PLUS, mode, operands); DONE;") (define_insn_and_split "*add3_doubleword" - [(set (match_operand: 0 "nonimmediate_operand" "=r,o") + [(set (match_operand: 0 "nonimmediate_operand" "=ro,r") (plus: (match_operand: 1 "nonimmediate_operand" "%0,0") - (match_operand: 2 "x86_64_hilo_general_operand" - "ro,r"))) + (match_operand: 2 "x86_64_hilo_general_operand" "r,o"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (PLUS, mode, operands)" "#" @@ -5369,10 +5368,10 @@ }) (define_insn "*add_1" - [(set (match_operand:SWI48 0 "nonimmediate_operand" "=r,rm,r,r") + [(set (match_operand:SWI48 0 "nonimmediate_operand" "=rm,r,r,r") (plus:SWI48 (match_operand:SWI48 1 "nonimmediate_operand" "%0,0,r,r") - (match_operand:SWI48 2 "x86_64_general_operand" "rme,re,0,le"))) + (match_operand:SWI48 2 "x86_64_general_operand" "re,m,0,le"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (PLUS, mode, operands)" { @@ -5475,7 +5474,7 @@ (define_insn "*addhi_1" [(set (match_operand:HI 0 "nonimmediate_operand" "=rm,r,r,Yp") (plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0,r,Yp") - (match_operand:HI 2 "general_operand" "rn,rm,0,ln"))) + (match_operand:HI 2 "general_operand" "rn,m,0,ln"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (PLUS, HImode, operands)" { @@ -5524,7 +5523,7 @@ (define_insn "*addqi_1" [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,q,r,r,Yp") (plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,q,0,r,Yp") - (match_operand:QI 2 "general_operand" "qn,qm,0,rn,0,ln"))) + (match_operand:QI 2 "general_operand" "qn,m,0,rn,0,ln"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (PLUS, QImode, operands)" { @@ -5587,7 +5586,7 @@ (define_insn "*addqi_1_slp" [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q")) (plus:QI (match_dup 0) - (match_operand:QI 1 "general_operand" "qn,qm"))) + (match_operand:QI 1 "general_operand" "qn,m"))) (clobber (reg:CC FLAGS_REG))] "(! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) && !(MEM_P (operands[0]) && MEM_P (operands[1]))" @@ -5680,9 +5679,9 @@ (compare (plus:SWI (match_operand:SWI 1 "nonimmediate_operand" "%0,0,") - (match_operand:SWI 2 "" ",,0")) + (match_operand:SWI 2 "" ",m,0")) (const_int 0))) - (set (match_operand:SWI 0 "nonimmediate_operand" "=,m,") + (set (match_operand:SWI 0 "nonimmediate_operand" "=m,,") (plus:SWI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCGOCmode) && ix86_binary_operator_ok (PLUS, mode, operands)" @@ -6073,11 +6072,10 @@ (sign_extend: (match_operand:SWI 1 "nonimmediate_operand" "%0,0")) (sign_extend: - (match_operand:SWI 2 "" - "mWe,We"))) + (match_operand:SWI 2 "" "We,m"))) (sign_extend: (plus:SWI (match_dup 1) (match_dup 2))))) - (set (match_operand:SWI 0 "nonimmediate_operand" "=,m") + (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (plus:SWI (match_dup 1) (match_dup 2)))] "ix86_binary_operator_ok (PLUS, mode, operands)" "add{}\t{%2, %0|%0, %2}" @@ -6091,9 +6089,9 @@ (match_operand:SWI 1 "nonimmediate_operand" "0")) (match_operand: 3 "const_int_operand" "i")) (sign_extend: - (plus:SWI (match_dup 1) - (match_operand:SWI 2 "x86_64_immediate_operand" - ""))))) + (plus:SWI + (match_dup 1) + (match_operand:SWI 2 "x86_64_immediate_operand" ""))))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m") (plus:SWI (match_dup 1) (match_dup 2)))] "ix86_binary_operator_ok (PLUS, mode, operands) @@ -6297,11 +6295,10 @@ "ix86_expand_binary_operator (MINUS, mode, operands); DONE;") (define_insn_and_split "*sub3_doubleword" - [(set (match_operand: 0 "nonimmediate_operand" "=r,o") + [(set (match_operand: 0 "nonimmediate_operand" "=ro,r") (minus: (match_operand: 1 "nonimmediate_operand" "0,0") - (match_operand: 2 "x86_64_hilo_general_operand" - "ro,r"))) + (match_operand: 2 "x86_64_hilo_general_operand" "r,o"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (MINUS, mode, operands)" "#" @@ -6330,7 +6327,7 @@ [(set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (minus:SWI (match_operand:SWI 1 "nonimmediate_operand" "0,0") - (match_operand:SWI 2 "" ",m"))) + (match_operand:SWI 2 "" ",m"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (MINUS, mode, operands)" "sub{}\t{%2, %0|%0, %2}" @@ -6351,7 +6348,7 @@ (define_insn "*subqi_1_slp" [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q")) (minus:QI (match_dup 0) - (match_operand:QI 1 "general_operand" "qn,qm"))) + (match_operand:QI 1 "general_operand" "qn,m"))) (clobber (reg:CC FLAGS_REG))] "(! TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) && !(MEM_P (operands[0]) && MEM_P (operands[1]))" @@ -6364,7 +6361,7 @@ (compare (minus:SWI (match_operand:SWI 1 "nonimmediate_operand" "0,0") - (match_operand:SWI 2 "" ",m")) + (match_operand:SWI 2 "" ",m")) (const_int 0))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (minus:SWI (match_dup 1) (match_dup 2)))] @@ -6422,8 +6419,7 @@ (sign_extend: (match_operand:SWI 1 "nonimmediate_operand" "0,0")) (sign_extend: - (match_operand:SWI 2 "" - "We,m"))) + (match_operand:SWI 2 "" "We,m"))) (sign_extend: (minus:SWI (match_dup 1) (match_dup 2))))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") @@ -6440,9 +6436,9 @@ (match_operand:SWI 1 "nonimmediate_operand" "0")) (match_operand: 3 "const_int_operand" "i")) (sign_extend: - (minus:SWI (match_dup 1) - (match_operand:SWI 2 "x86_64_immediate_operand" - ""))))) + (minus:SWI + (match_dup 1) + (match_operand:SWI 2 "x86_64_immediate_operand" ""))))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m") (minus:SWI (match_dup 1) (match_dup 2)))] "ix86_binary_operator_ok (MINUS, mode, operands) @@ -6475,7 +6471,7 @@ (define_insn "*sub_3" [(set (reg FLAGS_REG) (compare (match_operand:SWI 1 "nonimmediate_operand" "0,0") - (match_operand:SWI 2 "" ",m"))) + (match_operand:SWI 2 "" ",m"))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (minus:SWI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCmode) @@ -6518,7 +6514,7 @@ (match_operator:SWI 4 "ix86_carry_flag_operator" [(match_operand 3 "flags_reg_operand") (const_int 0)]) (match_operand:SWI 1 "nonimmediate_operand" "%0,0")) - (match_operand:SWI 2 "" ",m"))) + (match_operand:SWI 2 "" ",m"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (PLUS, mode, operands)" "adc{}\t{%2, %0|%0, %2}" @@ -6618,7 +6614,7 @@ (match_operand:SWI 1 "nonimmediate_operand" "0,0") (match_operator:SWI 4 "ix86_carry_flag_operator" [(match_operand 3 "flags_reg_operand") (const_int 0)])) - (match_operand:SWI 2 "" ",m"))) + (match_operand:SWI 2 "" ",m"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (MINUS, mode, operands)" "sbb{}\t{%2, %0|%0, %2}" @@ -6783,7 +6779,7 @@ (compare:CCC (plus:SWI (match_operand:SWI 1 "nonimmediate_operand" "%0,0") - (match_operand:SWI 2 "" ",m")) + (match_operand:SWI 2 "" ",m")) (match_dup 1))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (plus:SWI (match_dup 1) (match_dup 2)))] @@ -6824,7 +6820,7 @@ (compare:CCC (plus:SWI (match_operand:SWI 1 "nonimmediate_operand" "%0,0") - (match_operand:SWI 2 "" ",m")) + (match_operand:SWI 2 "" ",m")) (match_dup 2))) (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (plus:SWI (match_dup 1) (match_dup 2)))] @@ -8431,7 +8427,7 @@ [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r,r") (and:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,0,qm") - (match_operand:DI 2 "x86_64_szext_general_operand" "Z,re,rm,L"))) + (match_operand:DI 2 "x86_64_szext_general_operand" "Z,re,m,L"))) (clobber (reg:CC FLAGS_REG))] "TARGET_64BIT && ix86_binary_operator_ok (AND, DImode, operands)" "@ @@ -8516,7 +8512,7 @@ (define_insn "*and_1" [(set (match_operand:SWI24 0 "nonimmediate_operand" "=rm,r,Ya") (and:SWI24 (match_operand:SWI24 1 "nonimmediate_operand" "%0,0,qm") - (match_operand:SWI24 2 "" "r,rm,L"))) + (match_operand:SWI24 2 "" "r,m,L"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (AND, mode, operands)" "@ @@ -8537,7 +8533,7 @@ (define_insn "*andqi_1" [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,r") (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:QI 2 "general_operand" "qn,qmn,rn"))) + (match_operand:QI 2 "general_operand" "qn,m,rn"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (AND, QImode, operands)" "@ @@ -8555,7 +8551,7 @@ (define_insn "*andqi_1_slp" [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q")) (and:QI (match_dup 0) - (match_operand:QI 1 "general_operand" "qn,qmn"))) + (match_operand:QI 1 "general_operand" "qn,m"))) (clobber (reg:CC FLAGS_REG))] "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) && !(MEM_P (operands[0]) && MEM_P (operands[1]))" @@ -8644,9 +8640,9 @@ (compare (and:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:DI 2 "x86_64_szext_general_operand" "Z,rem,re")) + (match_operand:DI 2 "x86_64_szext_general_operand" "Z,re,m")) (const_int 0))) - (set (match_operand:DI 0 "nonimmediate_operand" "=r,r,rm") + (set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r") (and:DI (match_dup 1) (match_dup 2)))] "TARGET_64BIT && ix86_match_ccmode @@ -8687,9 +8683,9 @@ [(set (reg FLAGS_REG) (compare (and:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:QI 2 "general_operand" "qmn,qn,n")) + (match_operand:QI 2 "general_operand" "qn,m,n")) (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm,r") + (set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,r") (and:QI (match_dup 1) (match_dup 2)))] "ix86_binary_operator_ok (AND, QImode, operands) && ix86_match_ccmode (insn, @@ -8716,9 +8712,9 @@ [(set (reg FLAGS_REG) (compare (and:SWI124 (match_operand:SWI124 1 "nonimmediate_operand" "%0,0") - (match_operand:SWI124 2 "" ",")) + (match_operand:SWI124 2 "" ",m")) (const_int 0))) - (set (match_operand:SWI124 0 "nonimmediate_operand" "=,m") + (set (match_operand:SWI124 0 "nonimmediate_operand" "=m,") (and:SWI124 (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCNOmode) && ix86_binary_operator_ok (AND, mode, operands)" @@ -8728,9 +8724,8 @@ (define_insn "*andqi_2_slp" [(set (reg FLAGS_REG) - (compare (and:QI - (match_operand:QI 0 "nonimmediate_operand" "+q,qm") - (match_operand:QI 1 "nonimmediate_operand" "qmn,qn")) + (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "+qm,q") + (match_operand:QI 1 "nonimmediate_operand" "qn,m")) (const_int 0))) (set (strict_low_part (match_dup 0)) (and:QI (match_dup 0) (match_dup 1)))] @@ -9006,10 +9001,10 @@ }) (define_insn "*_1" - [(set (match_operand:SWI248 0 "nonimmediate_operand" "=r,rm") + [(set (match_operand:SWI248 0 "nonimmediate_operand" "=rm,r") (any_or:SWI248 (match_operand:SWI248 1 "nonimmediate_operand" "%0,0") - (match_operand:SWI248 2 "" ",r"))) + (match_operand:SWI248 2 "" "r,m"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (, mode, operands)" "{}\t{%2, %0|%0, %2}" @@ -9086,9 +9081,9 @@ (set_attr "mode" "SI")]) (define_insn "*qi_1" - [(set (match_operand:QI 0 "nonimmediate_operand" "=q,m,r") + [(set (match_operand:QI 0 "nonimmediate_operand" "=qm,q,r") (any_or:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0,0") - (match_operand:QI 2 "general_operand" "qmn,qn,rn"))) + (match_operand:QI 2 "general_operand" "qn,m,rn"))) (clobber (reg:CC FLAGS_REG))] "ix86_binary_operator_ok (, QImode, operands)" "@ @@ -9104,9 +9099,9 @@ (symbol_ref "true")))]) (define_insn "*qi_1_slp" - [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+q,m")) + [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm,q")) (any_or:QI (match_dup 0) - (match_operand:QI 1 "general_operand" "qmn,qn"))) + (match_operand:QI 1 "general_operand" "qn,m"))) (clobber (reg:CC FLAGS_REG))] "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) && !(MEM_P (operands[0]) && MEM_P (operands[1]))" @@ -9118,9 +9113,9 @@ [(set (reg FLAGS_REG) (compare (any_or:SWI (match_operand:SWI 1 "nonimmediate_operand" "%0,0") - (match_operand:SWI 2 "" ",")) + (match_operand:SWI 2 "" ",m")) (const_int 0))) - (set (match_operand:SWI 0 "nonimmediate_operand" "=,m") + (set (match_operand:SWI 0 "nonimmediate_operand" "=m,") (any_or:SWI (match_dup 1) (match_dup 2)))] "ix86_match_ccmode (insn, CCNOmode) && ix86_binary_operator_ok (, mode, operands)" @@ -9159,8 +9154,8 @@ (define_insn "*qi_2_slp" [(set (reg FLAGS_REG) - (compare (any_or:QI (match_operand:QI 0 "nonimmediate_operand" "+q,qm") - (match_operand:QI 1 "general_operand" "qmn,qn")) + (compare (any_or:QI (match_operand:QI 0 "nonimmediate_operand" "+qm,q") + (match_operand:QI 1 "general_operand" "qn,m")) (const_int 0))) (set (strict_low_part (match_dup 0)) (any_or:QI (match_dup 0) (match_dup 1)))]