From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11381 invoked by alias); 31 Jul 2015 08:53:47 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 11370 invoked by uid 89); 31 Jul 2015 08:53:47 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.7 required=5.0 tests=BAYES_50,FREEMAIL_FROM,KAM_LOTSOFHASH,SPF_SOFTFAIL autolearn=no version=3.3.2 X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 31 Jul 2015 08:53:46 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZL64U-0000Gv-PR for gdb@sourceware.org; Fri, 31 Jul 2015 04:53:44 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52740) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZL64U-0000Gq-La for gdb@sourceware.org; Fri, 31 Jul 2015 04:53:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48748) by fencepost.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ZL64U-0000u9-AW for gdb@gnu.org; Fri, 31 Jul 2015 04:53:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZL64T-0000DA-20 for gdb@gnu.org; Fri, 31 Jul 2015 04:53:42 -0400 Received: from mail-lb0-x234.google.com ([2a00:1450:4010:c04::234]:32887) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZL64S-0000A5-Ph for gdb@gnu.org; Fri, 31 Jul 2015 04:53:40 -0400 Received: by lbbyj8 with SMTP id yj8so42209611lbb.0 for ; Fri, 31 Jul 2015 01:53:39 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.152.205.1 with SMTP id lc1mr1612956lac.75.1438332818932; Fri, 31 Jul 2015 01:53:38 -0700 (PDT) Received: by 10.114.79.201 with HTTP; Fri, 31 Jul 2015 01:53:38 -0700 (PDT) In-Reply-To: References: Date: Fri, 31 Jul 2015 08:53:00 -0000 Message-ID: Subject: Re: gdb prints only 128 bits of a YMM register (AVX) From: Laurent ML To: "Tedeschi, Walfred" Cc: "gdb@gnu.org" Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e X-SW-Source: 2015-07/txt/msg00083.txt.bz2 Hi, I ran this set like below in gdb: b func2_compare_32bitsPack commands 1 print $ymm1.v2_int128 print $ymm2.v2_int128 print $ymm3.v2_int128 print $ymm4.v2_int128 print $ymm5.v2_int128 print $ymm6.v2_int128 print $ymm7.v2_int128 print $ymm8.v2_int128 print $ymm9.v2_int128 print $ymm10.v2_int128 print $ymm11.v2_int128 print $ymm12.v2_int128 print $ymm13.v2_int128 print $ymm14.v2_int128 print $ymm15.v2_int128 continue end Concerning my problem, I found the reason: it's because of the compiler optimization. If I compile my program without using any optimization switch, the AVX register is completely set. Thanks, Laurent On Wed, Jul 29, 2015 at 1:48 PM, Tedeschi, Walfred wrote: > Hello Laurent, > > I did not understand how you are trying to see register values from the example bellow. > > Have you used print $ymm0 or info register? > > Thanks and regards, > -Fred > > -----Original Message----- > From: gdb-owner@sourceware.org [mailto:gdb-owner@sourceware.org] On Behalf Of Laurent ML > Sent: Monday, July 27, 2015 2:48 PM > To: gdb@gnu.org > Subject: gdb prints only 128 bits of a YMM register (AVX) > > Hello, > > I have created a small C program that uses AVX extensions, and I have compiled it with options -03 -mavx. > Next I used GDB to print the content of YMM registers, but each time I print the content of one of the YMM register, gdb prints only the highest 128 bits of the registers: > > Breakpoint 1, 0x0000000000400a70 in func2_compare_32bitsPack () > $1 = ">" > $2 = {0xffffffffffff00000000000000000000, 0x00000000000000000000000000000000} > $3 = {0x0000000000006e6f73697261706d6f43, 0x00000000000000000000000000000000} > $4 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $5 = {0x000000000000ff000000000000ffffff, 0x00000000000000000000000000000000} > $6 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $7 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $8 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $9 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $10 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $11 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $12 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $13 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $14 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $15 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $16 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > $17 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000} > > Is there a way to get the last part of the register ? > > I used gdb on EL7 : > $ gdb -v > GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7 > > Thanks for your help. > Intel Deutschland GmbH > Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany > Tel: +49 89 99 8853-0, www.intel.de > Managing Directors: Christin Eisenschmid, Prof. Dr. Hermann Eul > Chairperson of the Supervisory Board: Tiffany Doon Silva > Registered Office: Munich > Commercial Register: Amtsgericht Muenchen HRB 186928