From patchwork Fri Nov 5 12:09:22 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 70258 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 3CF861007D1 for ; Fri, 5 Nov 2010 23:09:37 +1100 (EST) Received: (qmail 28313 invoked by alias); 5 Nov 2010 12:09:32 -0000 Received: (qmail 28204 invoked by uid 22791); 5 Nov 2010 12:09:31 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, TW_ZJ, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pz0-f47.google.com (HELO mail-pz0-f47.google.com) (209.85.210.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 05 Nov 2010 12:09:26 +0000 Received: by pzk34 with SMTP id 34so464035pzk.20 for ; Fri, 05 Nov 2010 05:09:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.165.20 with SMTP id n20mr1750290wfe.200.1288958962264; Fri, 05 Nov 2010 05:09:22 -0700 (PDT) Received: by 10.143.167.14 with HTTP; Fri, 5 Nov 2010 05:09:22 -0700 (PDT) Date: Fri, 5 Nov 2010 13:09:22 +0100 Message-ID: Subject: [RFC PATCH, i386]: Implement -mfpmath=avx 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! Attached patch implements -mfpmath=avx in the same way as -mfpmath=sse. 2010-11-05 Uros Bizjak * config.gcc: Support --with-fpmath=avx for x86. * config/i386/avxmath.h: New. * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx. Uros. Index: doc/install.texi =================================================================== --- doc/install.texi (revision 166350) +++ doc/install.texi (working copy) @@ -1166,10 +1166,11 @@ Specify if the compiler should default to @option{-marm} or @option{-mthumb}. This option is only supported on ARM targets. -@item --with-fpmath=sse -Specify if the compiler should default to @option{-msse2} and -@option{-mfpmath=sse}. This option is only supported on i386 and -x86-64 targets. +@item --with-fpmath=@var{isa} +This options sets @option{-mfpmath=sse} by default and specifies the default +ISA for floating-point arithmetics. You can select either @samp{sse} which +enables @option{-msse2} or @samp{avx} which enables @option{-mavx} by default. +This option is only supported on i386 and x86-64 targets. @item --with-divide=@var{type} Specify how the compiler should generate code for checking for Index: config.gcc =================================================================== --- config.gcc (revision 166350) +++ config.gcc (working copy) @@ -2994,6 +2994,9 @@ case ${target} in i[34567]86-*-* | x86_64-*-*) case ${with_fpmath} in + avx) + tm_file="${tm_file} i386/avxmath.h" + ;; sse) tm_file="${tm_file} i386/ssemath.h" ;; Index: config/i386/avxmath.h =================================================================== --- config/i386/avxmath.h (revision 0) +++ config/i386/avxmath.h (revision 0) @@ -0,0 +1,29 @@ +/* Copyright (C) 2010 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#undef TARGET_FPMATH_DEFAULT +#define TARGET_FPMATH_DEFAULT FPMATH_SSE + +#undef TARGET_SUBTARGET_ISA_DEFAULT +#define TARGET_SUBTARGET_ISA_DEFAULT \ + (OPTION_MASK_ISA_MMX | OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_SSE2 \ + | OPTION_MASK_ISA_SSE3 | OPTION_MASK_ISA_SSSE3 \ + | OPTION_MASK_ISA_SSE4_1 | OPTION_MASK_ISA_SSE4_2 \ + | OPTION_MASK_ISA_AVX) +