From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id EtCjGr6RfmiUBTkAWB0awg (envelope-from ) for ; Mon, 21 Jul 2025 15:15:10 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ImEJWx7y; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 607871E089; Mon, 21 Jul 2025 15:15:10 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.8 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_SBL_CSS,RCVD_IN_VALIDITY_CERTIFIED, RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id EFB751E089 for ; Mon, 21 Jul 2025 15:15:08 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7B0333858C24 for ; Mon, 21 Jul 2025 19:15:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7B0333858C24 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ImEJWx7y Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id B19033858CDB for ; Mon, 21 Jul 2025 19:14:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B19033858CDB Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B19033858CDB Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1753125277; cv=none; b=PIKWZY2kz9ZaGwXzeGUcD9CBrry3qXjJ/DskXTevODdZH1hwc2nv3UY44M6qaF30vGEdqrEa7sMrbhRTueIewzvSvOzMD9pCOHgx7lu1+T0UR7WgSFsCiEW9T2JySpKLZx8cH13a9N5mUomZX2wayxNZvDXAKulp9uuAha45/JU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1753125277; c=relaxed/simple; bh=S7RCNV/OYlQ+2YJ5fllJZMTZw/Ha9tkMVTvs9wFL4ZE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=DmwmqiT3eTEPgxIdXMMnt97PYdLAF2qAZpXps8KIbScb303jTILxnr6PFiWhgoxJtr6VcUH1vhMla9xvlxrolyN2l97z16fDtFiWjCbUFwme7juLxmK+OAArT1QBfuxqwzRX8t/t2MPZAZaiX3hWQeX5ZQzfIylIRyCyyDS9lCE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B19033858CDB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753125277; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A5jUvHHbv5mvVioeWcvlUM56MD2YTJZpAdokTQuMvNY=; b=ImEJWx7ypbdk70rLsJ1p3sjVhluLr2oG1fK8zQyc+kxsDouF4WB0s3Pqr1B/zhcDSj0nN8 bv/wU4O6fC3aW+8a30dnN7j52KxqTyPy4lKP38uVdetqwIDIFs/86/J2Gko75nKJFUy9Uh u2pFHnqQD98bk8oRiBMWRXKr6ffl0ZA= Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-452-AzGsdhcJOIeKfTybpsN7Nw-1; Mon, 21 Jul 2025 15:14:36 -0400 X-MC-Unique: AzGsdhcJOIeKfTybpsN7Nw-1 X-Mimecast-MFC-AGG-ID: AzGsdhcJOIeKfTybpsN7Nw_1753125275 Received: by mail-oi1-f197.google.com with SMTP id 5614622812f47-41b4a69ddc2so1974740b6e.1 for ; Mon, 21 Jul 2025 12:14:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753125275; x=1753730075; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=A5jUvHHbv5mvVioeWcvlUM56MD2YTJZpAdokTQuMvNY=; b=HotrHsPhOSiyBvASfXSfkFj/3ly2I3vN0ZtlLFigOASSxeUbrD+ubmBgQo/bqSpW1D VJeg+bJS8pxOYjQ6KzXOWPRVha80ZLdg3LKBrFaa+Y4mFoFoRhTO/p/GRHr7THrKNPNe yHAs90KnX0+5Ali/9GyodYm6DTB1w240jhU1P9jiPBNmx3R+xDKOXkycfXpayTkC8l6b JzZ+5U4wfdjb42kaUt1zclkPy/HnUxDujV2iPthmLlGlN6KBFfN2nMjynlFH/GvNswq2 dueLVpkzgXssh/NJ4k44P1iadmmfbp5TeI57NyhiJ9JKYxRAM1Ac7Ze9aXHDUtJLxGur dfow== X-Forwarded-Encrypted: i=1; AJvYcCWPF6wQkgMoFpawQSZO+qSXgtOnlBezCn8iLbylofMPIvXk0rvc0iO8CA1ZZAEsIH16ZtYxK4x9vHdG+g==@sourceware.org X-Gm-Message-State: AOJu0YzKumzh5am5e9Q9hNtuhtX7Zy79wfpD7JwebkfPt+FklTzwYUDZ FIZ8KwQJ0sejG3CnmHkBwel+hmH267FMWbnMn9gjTR59Qk1tkyxbAGX/weaMxHtVhJsqjoJug6u Zkt+TzEhm8Kg5YBACKflrBzoIZD8mwA8Qr3VJhk3bYoh5kh4peEJW/RzFdTZ44//TkGzixoY= X-Gm-Gg: ASbGncv5udoOgkkG4Q3Of6EIMgHIfkeJL/xZt0gEyhe5C0h9eHtB34IPrhWZSnXfHcl X9MW6OwcWoj5K4z1dmTftDvfLKeLAkchELsJHDWmfCtf5OFO1H9o8GXv/SgTvG4K+yURikpX0Xf Rhl49RV0AmYCnTbjzE9YyEQpcQqurvFQ28oIp5PLNnR18lsGKmPP3vZYL2LPsi0M23I9qk6nzMB Uh5AnTJiL7S82ikBQ1Ws3Tou7vNT5bna0UlLCH1N6zFAbDrfVlCRTIZoEKK/Nq1xk44amSrpdot /YuItx6KeguoNkTNgkJF8hZWyA+GYQSA8YdOv+oiPho3NgUgr2U= X-Received: by 2002:a05:6808:bd5:b0:3f9:2fdc:ee93 with SMTP id 5614622812f47-41cf04d7dc9mr17308511b6e.30.1753125274595; Mon, 21 Jul 2025 12:14:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFHvRCa1DIzApNpZp8Hd0z3hYhNClxu/NCKvfCXj6R2LVcAYFaya85cOgD0HdJH53S3d8g13Q== X-Received: by 2002:a05:6808:bd5:b0:3f9:2fdc:ee93 with SMTP id 5614622812f47-41cf04d7dc9mr17308484b6e.30.1753125274112; Mon, 21 Jul 2025 12:14:34 -0700 (PDT) Received: from ?IPV6:2804:14d:8084:9a69::1000? ([2804:14d:8084:9a69::1000]) by smtp.gmail.com with ESMTPSA id 5614622812f47-41fd10c2296sm2407952b6e.4.2025.07.21.12.14.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Jul 2025 12:14:33 -0700 (PDT) Message-ID: Date: Mon, 21 Jul 2025 16:14:30 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/1] [gdb/reverse] Fix failing test: i386-avx-reverse To: Tom de Vries , Shiven Kashyap , gdb-patches@sourceware.org References: <20250719200052.28404-1-shivenkashyap24@gmail.com> From: Guinevere Larsen In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: Ghbuix4rdp8Bm1CkZ4LCwq7AIx6HYykvDWPd6NLXo84_1753125275 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Hi! Thank you for this patch! I have a comments, slightly expanding Tom's reply. A v2 with updated commit wording should be ready to push :) On 7/19/25 11:48 PM, Tom de Vries wrote: > On 7/19/25 22:00, Shiven Kashyap wrote: >> Running the standalone test `gdb.reverse` leads to the following >> failure: >> ''' >> FAIL: gdb.reverse/i386-avx-reverse.exp: verify ymm15 before vbroadcastsd >> ''' >> > > Hi, > > thanks for the patch. > > I first couldn't reproduce this, but then I managed using target board > unix/-fPIE/-pie. > >> This happens because the AVX broadcast instructions expect an actual >> value, but instead >> it cast memory address of a buffer like so (see 'vpbroadcast_test' in >> 'i386-avx-reverse.c'): >> ''' >> asm volatile ("vbroadcastss %0, %%xmm15": : "m" (dyn_buf0)); >> ''' >> > > This is a bit misleading, because vbroadcastss can handle memory > operands, not just "actual values". I second this, the instruction doesn't expect anything, but the test itself expects to have the contents in the address, not the address. I think the issue is better described as the test expecting the stored value, as those are fully under our control. -- Cheers, Guinevere Larsen She/Her/Hers > > After your fix (which looks correct to me), the generated instruction > still accesses a memory address: > ... >   400abd:       48 8b 05 04 26 00 00    mov    0x2604(%rip),%rax >                                           # 4030c8 >   400ac4:       c4 62 79 18 38          vbroadcastss (%rax),%xmm15 > ... > but this time, the correct one. > > Thanks, > - Tom > >> which lead to the test failing for the next instruction >> (`vbroadcastsd`), which depended on the correct value being broadcast >> to the register. >> Also, updated the corresponding expected output >> (gdb.reverse/i386-avx-reverse.exp) to match. >> >> Tested on x86-64 Linux. >> >> Signed-off-by: Shiven Kashyap >> --- >>   gdb/testsuite/gdb.reverse/i386-avx-reverse.c   | 4 ++-- >>   gdb/testsuite/gdb.reverse/i386-avx-reverse.exp | 2 +- >>   2 files changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c >> b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c >> index a3d64272f24..bf6cb77f313 100644 >> --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c >> +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c >> @@ -299,10 +299,10 @@ vpbroadcast_test () >>     asm volatile ("vbroadcastss %xmm1, %xmm0"); >>     asm volatile ("vbroadcastss %xmm1, %ymm15"); >>     asm volatile ("vbroadcastss %0, %%ymm0" : : "m" (global_buf0)); >> -  asm volatile ("vbroadcastss %0, %%xmm15": : "m" (dyn_buf0)); >> +  asm volatile ("vbroadcastss %0, %%xmm15": : "m" (*dyn_buf0)); >>     asm volatile ("vbroadcastsd %xmm1, %ymm0"); >>     asm volatile ("vbroadcastsd %0, %%ymm15": : "m" (global_buf0)); >> -  asm volatile ("vbroadcastf128 %0, %%ymm0" : : "m" (dyn_buf0)); >> +  asm volatile ("vbroadcastf128 %0, %%ymm0" : : "m" (*dyn_buf0)); >>       /* We have a return statement to deal with >>        epilogue in different compilers.  */ >> diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp >> b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp >> index 7e75542720c..fb04260766e 100644 >> --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp >> +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp >> @@ -395,7 +395,7 @@ if {[record_full_function "vpbroadcast"] == true} { >>       test_one_register "vbroadcastf128" "ymm0" \ >>       "0x17161514131211101716151413121110, >> 0x17161514131211101716151413121110" >>       test_one_register "vbroadcastsd" "ymm15" \ >> -    "0x404060004040600040406000404060, 0x0" >> +    "0x23222120232221202322212023222120, 0x0" >>       test_one_register "vbroadcastsd" "ymm0" \ >>       "0x13121110131211101312111013121110, >> 0x13121110131211101312111013121110" >