aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2013-04-02 19:21:55 +0200
committerUros Bizjak <uros@gcc.gnu.org>2013-04-02 19:21:55 +0200
commite594716a6a02ffcc0a33862ff6ea8325ac2263e8 (patch)
treee13843d0ab6c4a04acef4eeda769dc1e9bd83c91
parent9763b6a76813ffb9b6224afd7b2c5ead90d896b9 (diff)
downloadgcc-e594716a6a02ffcc0a33862ff6ea8325ac2263e8.zip
gcc-e594716a6a02ffcc0a33862ff6ea8325ac2263e8.tar.gz
gcc-e594716a6a02ffcc0a33862ff6ea8325ac2263e8.tar.bz2
i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64 using SWI48 mode attribute.
* config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64 using SWI48 mode attribute. From-SVN: r197367
-rw-r--r--gcc/ChangeLog34
-rw-r--r--gcc/config/i386/i386.md43
2 files changed, 32 insertions, 45 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3ac917a..de855d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-02 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
+ using SWI48 mode attribute.
+
2013-04-02 Wei Mi <wmi@google.com>
* config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
@@ -20,14 +25,14 @@
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
- * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
- * config/arm/cortex-a53.md: New file.
- * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
- * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
- * config/arm/arm.c (arm_issue_rate): Likewise.
- * config/arm/arm-tune.md: Regenerate
- * config/arm/arm-tables.opt: Regenerate.
- * config/arm/arm-cores.def: Add cortex-a53.
+ * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
+ * config/arm/cortex-a53.md: New file.
+ * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
+ * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
+ * config/arm/arm.c (arm_issue_rate): Likewise.
+ * config/arm/arm-tune.md: Regenerate
+ * config/arm/arm-tables.opt: Regenerate.
+ * config/arm/arm-cores.def: Add cortex-a53.
2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
@@ -205,7 +210,8 @@
(ipa_profile_write_summary): New function.
(ipa_profile_read_summary): New function.
(ipa_profile): Decide on threshold.
- (pass_ipa_profile): Add ipa_profile_write_summary and ipa_profile_read_summary.
+ (pass_ipa_profile): Add ipa_profile_write_summary and
+ ipa_profile_read_summary.
* Makefile.in (ipa.o): Update dependencies.
* lto-streamer.h (LTO_section_ipa_profile): New section.
@@ -497,7 +503,7 @@
(input_gimple_stmt): Input histograms.
(input_bb): Update profile streaming.
-2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
+2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
* genmodes.c (emit_max_int): New function.
(emit_insn_modes_h): Added call to emit_max_function.
@@ -505,7 +511,7 @@
Added doc.
* machmode.def: Fixed comment.
-2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
+2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
* combine.c (try_combine): Removed useless assert.
* cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
@@ -636,14 +642,12 @@
2013-03-27 Walter Lee <walt@tilera.com>
- * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete
- extra tab.
+ * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
(ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
2013-03-27 Walter Lee <walt@tilera.com>
- * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute
- for jr.
+ * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
(*sibcall_value): Ditto.
2013-03-27 Walter Lee <walt@tilera.com>
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 5b794a1..b9ca95b 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -7134,43 +7134,26 @@
[(set_attr "type" "test")
(set_attr "mode" "QI")])
-(define_insn "*testqi_ext_3_rex64"
- [(set (reg FLAGS_REG)
- (compare (zero_extract:DI
- (match_operand 0 "nonimmediate_operand" "rm")
- (match_operand:DI 1 "const_int_operand")
- (match_operand:DI 2 "const_int_operand"))
- (const_int 0)))]
- "TARGET_64BIT
- && ix86_match_ccmode (insn, CCNOmode)
- && INTVAL (operands[1]) > 0
- && INTVAL (operands[2]) >= 0
- /* Ensure that resulting mask is zero or sign extended operand. */
- && (INTVAL (operands[1]) + INTVAL (operands[2]) <= 32
- || (INTVAL (operands[1]) + INTVAL (operands[2]) == 64
- && INTVAL (operands[1]) > 32))
- && (GET_MODE (operands[0]) == SImode
- || GET_MODE (operands[0]) == DImode
- || GET_MODE (operands[0]) == HImode
- || GET_MODE (operands[0]) == QImode)"
- "#")
-
;; Combine likes to form bit extractions for some tests. Humor it.
(define_insn "*testqi_ext_3"
[(set (reg FLAGS_REG)
- (compare (zero_extract:SI
+ (compare (zero_extract:SWI48
(match_operand 0 "nonimmediate_operand" "rm")
- (match_operand:SI 1 "const_int_operand")
- (match_operand:SI 2 "const_int_operand"))
+ (match_operand:SWI48 1 "const_int_operand")
+ (match_operand:SWI48 2 "const_int_operand"))
(const_int 0)))]
"ix86_match_ccmode (insn, CCNOmode)
- && INTVAL (operands[1]) > 0
- && INTVAL (operands[2]) >= 0
- && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32
- && (GET_MODE (operands[0]) == SImode
- || (TARGET_64BIT && GET_MODE (operands[0]) == DImode)
+ && ((TARGET_64BIT && GET_MODE (operands[0]) == DImode)
+ || GET_MODE (operands[0]) == SImode
|| GET_MODE (operands[0]) == HImode
- || GET_MODE (operands[0]) == QImode)"
+ || GET_MODE (operands[0]) == QImode)
+ /* Ensure that resulting mask is zero or sign extended operand. */
+ && INTVAL (operands[2]) >= 0
+ && ((INTVAL (operands[1]) > 0
+ && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)
+ || (<MODE>mode == DImode
+ && INTVAL (operands[1]) > 32
+ && INTVAL (operands[1]) + INTVAL (operands[2]) == 64))"
"#")
(define_split