Commit 62d2739a by Uros Bizjak

i386.md (*strmovsi_1): Simplify asm alternatives.

        * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
        (*strmovsi_rex_1): Ditto.
        (*strsetsi_1): Ditto.
        (*strsetsi_rex_1): Ditto.

        (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
        adddicc expanders using SWI mode iterator.

From-SVN: r134933
parent 4d31c3e1
2008-05-04 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
(*strmovsi_rex_1): Ditto.
(*strsetsi_1): Ditto.
(*strsetsi_rex_1): Ditto.
(add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
adddicc expanders using SWI mode iterator.
2008-05-04 H.J. Lu <hongjiu.lu@intel.com> 2008-05-04 H.J. Lu <hongjiu.lu@intel.com>
PR target/36121 PR target/36121
* config/i386/i386.c (ix86_expand_special_args_builtin): Remove * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
3 argument handling. argument handling.
2008-05-04 David S. Miller <davem@davemloft.net> 2008-05-04 David S. Miller <davem@davemloft.net>
...@@ -248,18 +258,13 @@ ...@@ -248,18 +258,13 @@
config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
from... from...
* config/rs6000/crtsavres.asm: ...here. Remove unneeded file. * config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
* config/rs6000/e500crtres32gpr.asm, * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
config/rs6000/e500crtres64gpr.asm
config/rs6000/e500crtres64gprctr.asm, config/rs6000/e500crtres64gprctr.asm,
config/rs6000/e500crtrest32gpr.asm config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
config/rs6000/e500crtrest64gpr.asm, config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
config/rs6000/e500crtresx32gpr.asm config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
config/rs6000/e500crtresx64gpr.asm, config/rs6000/e500crtsav64gprctr.asm,
config/rs6000/e500crtsav32gpr.asm config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
config/rs6000/e500crtsav64gpr.asm,
config/rs6000/e500crtsav64gprctr.asm
config/rs6000/e500crtsavg32gpr.asm,
config/rs6000/e500crtsavg64gpr.asm
config/rs6000/e500crtsavg64gprctr.asm: New files. config/rs6000/e500crtsavg64gprctr.asm: New files.
* config/rs6000/t-ppccomm: Add build rules for new files. * config/rs6000/t-ppccomm: Add build rules for new files.
(LIB2FUNCS_STATIC_EXTRA): Add new files. (LIB2FUNCS_STATIC_EXTRA): Add new files.
...@@ -297,8 +302,7 @@ ...@@ -297,8 +302,7 @@
(ix86_expand_args_builtin): Updated. Take a pointer (ix86_expand_args_builtin): Updated. Take a pointer
to const struct builtin_description. Handle comparison to const struct builtin_description. Handle comparison
builtin functions. builtin functions.
(ix86_expand_sse_compare): Take a new argument for swapping (ix86_expand_sse_compare): Take a new argument for swapping operands.
operands.
(ix86_expand_builtin): Updated. (ix86_expand_builtin): Updated.
* config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ... * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
...@@ -306,10 +310,9 @@ ...@@ -306,10 +310,9 @@
(ssse3_pmaddubswv4hi3): Renamed to ... (ssse3_pmaddubswv4hi3): Renamed to ...
(ssse3_pmaddubsw): This. (ssse3_pmaddubsw): This.
* doc/extend.texi (__builtin_ia32_packsswb128): Correct * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
prototype.
(__builtin_ia32_packssdw128): Likewise. (__builtin_ia32_packssdw128): Likewise.
)__builtin_ia32_packuswb128): Likewise. (__builtin_ia32_packuswb128): Likewise.
(__builtin_ia32_pmaddubsw): Likewise. (__builtin_ia32_pmaddubsw): Likewise.
(__builtin_ia32_pmaddubsw128): Likewise. (__builtin_ia32_pmaddubsw128): Likewise.
...@@ -935,8 +938,7 @@ ...@@ -935,8 +938,7 @@
2008-04-25 H.J. Lu <hongjiu.lu@intel.com> 2008-04-25 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/sse.md (mov<mode>): Replace SSEMODEI with * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
SSEMODE.
(*mov<mode>_internal): Likewise. Support V4SF and V2DF. (*mov<mode>_internal): Likewise. Support V4SF and V2DF.
(mov<mode>): Removed. (mov<mode>): Removed.
(*movv4sf_internal): Likewise. (*movv4sf_internal): Likewise.
......
...@@ -18476,7 +18476,7 @@ ...@@ -18476,7 +18476,7 @@
(plus:SI (match_dup 3) (plus:SI (match_dup 3)
(const_int 4)))] (const_int 4)))]
"!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" "!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)"
"{movsl|movsd}" "movs{l|d}"
[(set_attr "type" "str") [(set_attr "type" "str")
(set_attr "mode" "SI") (set_attr "mode" "SI")
(set_attr "memory" "both")]) (set_attr "memory" "both")])
...@@ -18491,7 +18491,7 @@ ...@@ -18491,7 +18491,7 @@
(plus:DI (match_dup 3) (plus:DI (match_dup 3)
(const_int 4)))] (const_int 4)))]
"TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" "TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)"
"{movsl|movsd}" "movs{l|d}"
[(set_attr "type" "str") [(set_attr "type" "str")
(set_attr "mode" "SI") (set_attr "mode" "SI")
(set_attr "memory" "both")]) (set_attr "memory" "both")])
...@@ -18747,7 +18747,7 @@ ...@@ -18747,7 +18747,7 @@
(plus:SI (match_dup 1) (plus:SI (match_dup 1)
(const_int 4)))] (const_int 4)))]
"!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" "!TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)"
"{stosl|stosd}" "stos{l|d}"
[(set_attr "type" "str") [(set_attr "type" "str")
(set_attr "memory" "store") (set_attr "memory" "store")
(set_attr "mode" "SI")]) (set_attr "mode" "SI")])
...@@ -18759,7 +18759,7 @@ ...@@ -18759,7 +18759,7 @@
(plus:DI (match_dup 1) (plus:DI (match_dup 1)
(const_int 4)))] (const_int 4)))]
"TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)" "TARGET_64BIT && (TARGET_SINGLE_STRINGOP || optimize_size)"
"{stosl|stosd}" "stos{l|d}"
[(set_attr "type" "str") [(set_attr "type" "str")
(set_attr "memory" "store") (set_attr "memory" "store")
(set_attr "mode" "SI")]) (set_attr "mode" "SI")])
...@@ -19561,38 +19561,14 @@ ...@@ -19561,38 +19561,14 @@
operands[1], operands[0]);") operands[1], operands[0]);")
;; Conditional addition patterns ;; Conditional addition patterns
(define_expand "addqicc" (define_expand "add<mode>cc"
[(match_operand:QI 0 "register_operand" "") [(match_operand:SWI 0 "register_operand" "")
(match_operand 1 "comparison_operator" "") (match_operand 1 "comparison_operator" "")
(match_operand:QI 2 "register_operand" "") (match_operand:SWI 2 "register_operand" "")
(match_operand:QI 3 "const_int_operand" "")] (match_operand:SWI 3 "const_int_operand" "")]
"" ""
"if (ix86_expand_int_addcc (operands)) DONE; else FAIL;") "if (ix86_expand_int_addcc (operands)) DONE; else FAIL;")
(define_expand "addhicc"
[(match_operand:HI 0 "register_operand" "")
(match_operand 1 "comparison_operator" "")
(match_operand:HI 2 "register_operand" "")
(match_operand:HI 3 "const_int_operand" "")]
""
"if (ix86_expand_int_addcc (operands)) DONE; else FAIL;")
(define_expand "addsicc"
[(match_operand:SI 0 "register_operand" "")
(match_operand 1 "comparison_operator" "")
(match_operand:SI 2 "register_operand" "")
(match_operand:SI 3 "const_int_operand" "")]
""
"if (ix86_expand_int_addcc (operands)) DONE; else FAIL;")
(define_expand "adddicc"
[(match_operand:DI 0 "register_operand" "")
(match_operand 1 "comparison_operator" "")
(match_operand:DI 2 "register_operand" "")
(match_operand:DI 3 "const_int_operand" "")]
"TARGET_64BIT"
"if (ix86_expand_int_addcc (operands)) DONE; else FAIL;")
;; Misc patterns (?) ;; Misc patterns (?)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment