From patchwork Thu May 5 11:45:37 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 94249 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 9CD35B6FC3 for ; Thu, 5 May 2011 21:46:02 +1000 (EST) Received: (qmail 6948 invoked by alias); 5 May 2011 11:45:56 -0000 Received: (qmail 6919 invoked by uid 22791); 5 May 2011 11:45:53 -0000 X-SWARE-Spam-Status: No, hits=0.5 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, MEDICAL_SUBJECT, RCVD_IN_DNSWL_LOW, RFC_ABUSE_POST, TW_ZJ, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pv0-f175.google.com (HELO mail-pv0-f175.google.com) (74.125.83.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 05 May 2011 11:45:38 +0000 Received: by pvc30 with SMTP id 30so1078636pvc.20 for ; Thu, 05 May 2011 04:45:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.171.11 with SMTP id t11mr1214952wfe.154.1304595937296; Thu, 05 May 2011 04:45:37 -0700 (PDT) Received: by 10.143.158.12 with HTTP; Thu, 5 May 2011 04:45:37 -0700 (PDT) Date: Thu, 5 May 2011 13:45:37 +0200 Message-ID: Subject: [PATCH, i386]: Simplify if conditions in i386.md From: Uros Bizjak To: gcc-patches@gcc.gnu.org Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hello! No functional change. 2011-05-05 Uros Bizjak * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if" conditions. (*movdf_internal): Ditto. (*movdf_internal_nointeger): Ditto. (*movsf_internal): Ditto. Tested on x86_64-pc-linux-gnu {,-m32} AVX target, committed to mainline SVN. Uros. Index: i386.md =================================================================== --- i386.md (revision 173395) +++ i386.md (working copy) @@ -1893,15 +1893,15 @@ { if (get_attr_mode (insn) == MODE_V4SF) return "%vmovups\t{%1, %0|%0, %1}"; - else - return "%vmovdqu\t{%1, %0|%0, %1}"; + else + return "%vmovdqu\t{%1, %0|%0, %1}"; } else { if (get_attr_mode (insn) == MODE_V4SF) return "%vmovaps\t{%1, %0|%0, %1}"; - else - return "%vmovdqa\t{%1, %0|%0, %1}"; + else + return "%vmovdqa\t{%1, %0|%0, %1}"; } default: gcc_unreachable (); @@ -1956,15 +1956,15 @@ { if (get_attr_mode (insn) == MODE_V4SF) return "%vmovups\t{%1, %0|%0, %1}"; - else - return "%vmovdqu\t{%1, %0|%0, %1}"; + else + return "%vmovdqu\t{%1, %0|%0, %1}"; } else { if (get_attr_mode (insn) == MODE_V4SF) return "%vmovaps\t{%1, %0|%0, %1}"; - else - return "%vmovdqa\t{%1, %0|%0, %1}"; + else + return "%vmovdqa\t{%1, %0|%0, %1}"; } default: gcc_unreachable (); @@ -2004,13 +2004,15 @@ /* Handle broken assemblers that require movd instead of movq. */ if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) return "%vmovd\t{%1, %0|%0, %1}"; - return "%vmovq\t{%1, %0|%0, %1}"; + else + return "%vmovq\t{%1, %0|%0, %1}"; case TYPE_MMXMOV: /* Handle broken assemblers that require movd instead of movq. */ if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1])) return "movd\t{%1, %0|%0, %1}"; - return "movq\t{%1, %0|%0, %1}"; + else + return "movq\t{%1, %0|%0, %1}"; case TYPE_SSELOG1: return "%vpxor\t%0, %d0"; @@ -3001,15 +3003,10 @@ case MODE_DI: return "%vmovq\t{%1, %0|%0, %1}"; case MODE_DF: - if (TARGET_AVX) - { - if (REG_P (operands[0]) && REG_P (operands[1])) - return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovsd\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1])) + return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; else - return "movsd\t{%1, %0|%0, %1}"; + return "%vmovsd\t{%1, %0|%0, %1}"; case MODE_V1DF: return "%vmovlpd\t{%1, %d0|%d0, %1}"; case MODE_V2SF: @@ -3164,35 +3161,20 @@ case MODE_DI: return "%vmovq\t{%1, %0|%0, %1}"; case MODE_DF: - if (TARGET_AVX) - { - if (REG_P (operands[0]) && REG_P (operands[1])) - return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovsd\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1])) + return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; else - return "movsd\t{%1, %0|%0, %1}"; + return "%vmovsd\t{%1, %0|%0, %1}"; case MODE_V1DF: - if (TARGET_AVX) - { - if (REG_P (operands[0])) - return "vmovlpd\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovlpd\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0])) + return "vmovlpd\t{%1, %0, %0|%0, %0, %1}"; else - return "movlpd\t{%1, %0|%0, %1}"; + return "%vmovlpd\t{%1, %0|%0, %1}"; case MODE_V2SF: - if (TARGET_AVX) - { - if (REG_P (operands[0])) - return "vmovlps\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovlps\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0])) + return "vmovlps\t{%1, %0, %0|%0, %0, %1}"; else - return "movlps\t{%1, %0|%0, %1}"; + return "%vmovlps\t{%1, %0|%0, %1}"; default: gcc_unreachable (); } @@ -3336,35 +3318,20 @@ case MODE_DI: return "%vmovq\t{%1, %0|%0, %1}"; case MODE_DF: - if (TARGET_AVX) - { - if (REG_P (operands[0]) && REG_P (operands[1])) - return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovsd\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0]) && REG_P (operands[1])) + return "vmovsd\t{%1, %0, %0|%0, %0, %1}"; else - return "movsd\t{%1, %0|%0, %1}"; + return "%vmovsd\t{%1, %0|%0, %1}"; case MODE_V1DF: - if (TARGET_AVX) - { - if (REG_P (operands[0])) - return "vmovlpd\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovlpd\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0])) + return "vmovlpd\t{%1, %0, %0|%0, %0, %1}"; else - return "movlpd\t{%1, %0|%0, %1}"; + return "%vmovlpd\t{%1, %0|%0, %1}"; case MODE_V2SF: - if (TARGET_AVX) - { - if (REG_P (operands[0])) - return "vmovlps\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovlps\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[0])) + return "vmovlps\t{%1, %0, %0|%0, %0, %1}"; else - return "movlps\t{%1, %0|%0, %1}"; + return "%vmovlps\t{%1, %0|%0, %1}"; default: gcc_unreachable (); } @@ -3483,15 +3450,10 @@ else return "%vmovss\t{%1, %d0|%d0, %1}"; case 7: - if (TARGET_AVX) - { - if (REG_P (operands[1])) - return "vmovss\t{%1, %0, %0|%0, %0, %1}"; - else - return "vmovss\t{%1, %0|%0, %1}"; - } + if (TARGET_AVX && REG_P (operands[1])) + return "vmovss\t{%1, %0, %0|%0, %0, %1}"; else - return "movss\t{%1, %0|%0, %1}"; + return "%vmovss\t{%1, %0|%0, %1}"; case 8: return "%vmovss\t{%1, %0|%0, %1}";