From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47445) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxAhA-0002dy-4E for qemu-devel@nongnu.org; Fri, 13 Nov 2015 04:31:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZxAh6-0006zS-06 for qemu-devel@nongnu.org; Fri, 13 Nov 2015 04:31:00 -0500 Received: from mx3-phx2.redhat.com ([209.132.183.24]:38291) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxAh5-0006zE-Kk for qemu-devel@nongnu.org; Fri, 13 Nov 2015 04:30:55 -0500 Date: Fri, 13 Nov 2015 04:30:53 -0500 (EST) From: Paolo Bonzini Message-ID: <1294522305.12149399.1447407053948.JavaMail.zimbra@redhat.com> In-Reply-To: References: <1447123907-26750-1-git-send-email-liang.z.li@intel.com> <1447123907-26750-2-git-send-email-liang.z.li@intel.com> <56446533.2070908@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v2 1/2] cutils: add avx2 instruction optimization List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Liang Z Li Cc: amit shah , mst@redhat.com, qemu-devel@nongnu.org, quintela@redhat.com > > ... define buffer_find_nonzero_offset_inner ... > > ... define can_use_buffer_find_nonzero_offset_inner ... > > > #if defined CONFIG_HAVE_GNU_IFUNC && defined CONFIG_HAVE_AVX2 ... > > define buffer_find_nonzero_offset_avx2 ... > > ... define can_use_buffer_find_nonzero_offset_avx2 ... > > ... define the indirect functions ... > > #else > > ... define buffer_find_nonzero_offset that just calls > > buffer_find_nonzero_offset_inner ... > > ... define can_use_buffer_find_nonzero_offset that just calls > > can_use_buffer_find_nonzero_offset_inner ... > > #endif > > > > Thanks, > > > > Paolo > > The buffer_find_nonzero_offset_inner & buffer_find_nonzero_offset_avx2 > can't defined in the same .c file. > Or, if the '-maxv2' is enabled, the " buffer_find_nonzero_offset_inner ()" > will be compiled to AVX2 instructions. You can use __attribute__((__target__("avx2"))) on the avx2 version, instead of compiling the whole file with -mavx2. Paolo