i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64 using SWI48 mode attribute.
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 2 Apr 2013 17:21:55 +0000 (19:21 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 2 Apr 2013 17:21:55 +0000 (19:21 +0200)
* config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
using SWI48 mode attribute.

From-SVN: r197367

gcc/ChangeLog
gcc/config/i386/i386.md

index 3ac917a99e3caf2a6ff852a611af362792dc765e..de855d7a9547505f32d8d21d2d83be55db5b82de 100644 (file)
@@ -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
            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>
 
        (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.
 
        (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.
        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.
 
 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>
index 5b794a1b82770f0c0202b5da4b9de2f781b34c78..b9ca95b7dd5c033f65b23df8dc7b384fb97588ea 100644 (file)
   [(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