From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 9A68D398E468; Fri, 9 Apr 2021 15:46:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9A68D398E468 From: "tschwinge at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/100001] New: [GCN offloading] Occasional C++ 'libgomp.oacc-c-c++-common/static-variable-1.c' execution failure Date: Fri, 09 Apr 2021 15:46:28 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: openacc X-Bugzilla-Severity: normal X-Bugzilla-Who: tschwinge at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status keywords bug_severity priority component assigned_to reporter cc target_milestone cf_gcctarget Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 15:46:28 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D100001 Bug ID: 100001 Summary: [GCN offloading] Occasional C++ 'libgomp.oacc-c-c++-common/static-variable-1.c' execution failure Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: openacc Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org CC: ams at gcc dot gnu.org, jules at gcc dot gnu.org Target Milestone: --- Target: gcn My recent commit ffa0ae6eeef3ad15d3f288283e4c477193052f1a "Add 'libgomp.oacc-c-c++-common/static-variable-1.c' [PR84991, PR84992, PR90779]" for 'libgomp.oacc-c' -- so far ;-) -- never but for 'libgomp.oacc-c++' occasionally/"randomly" fails with GCN offloading, for '-O0' and/or '-O2'.= =20 It's certainly possible that something's wrong with my verification logic, = but in quite some testing why has the failure ever only shown up for the C++ but never the C variant? On the other hand, why is C++ behaving different from= C at all? (I haven't spent any time on understanding that.) A few examples of failures with GCN offloading: static-variable-1.exe: [...]/libgomp/testsuite/libgomp.oacc-c++/../libgomp.oacc-c-c++-common/stati= c-variable-1.c:355: void t2(): Assertion `result_1_ =3D=3D (((var_init_1 + num_gangs_actual_1 *= (1 + i)) * (1 + var_init_1 + num_gangs_actual_1 * (1 + i)) / 2) - ((var_init_1 + num_gangs_actual_1 * (0 + i)) * (1 + var_init_1 + num_gangs_actual_1 * (0 += i)) / 2))' failed. static-variable-1.exe: [...]/libgomp/testsuite/libgomp.oacc-c++/../libgomp.oacc-c-c++-common/stati= c-variable-1.c:368: void t2(): Assertion `result_2_ =3D=3D (((t2_var_init_2 + num_gangs_actual_= 2 * (1 + i)) * (1 + t2_var_init_2 + num_gangs_actual_2 * (1 + i)) / 2) - ((t2_var_in= it_2 + num_gangs_actual_2 * (0 + i)) * (1 + t2_var_init_2 + num_gangs_actual_2 *= (0 + i)) / 2))' failed. static-variable-1.exe: [...]/libgomp/testsuite/libgomp.oacc-c++/../libgomp.oacc-c-c++-common/stati= c-variable-1.c:381: void t2(): Assertion `result_3_ =3D=3D (((var_init_3 + num_gangs_actual_3 *= (1 + i)) * (1 + var_init_3 + num_gangs_actual_3 * (1 + i)) / 2) - ((var_init_3 + num_gangs_actual_3 * (0 + i)) * (1 + var_init_3 + num_gangs_actual_3 * (0 += i)) / 2))' failed. I've -- so far ;-) -- not seen any failures with nvptx offloading.=