From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by sourceware.org (Postfix) with ESMTPS id 096253835424; Mon, 1 Mar 2021 22:19:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 096253835424 X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [79.232.149.115] ([79.232.149.115]) by web-mail.gmx.net (3c-app-gmx-bs32.server.lan [172.19.170.84]) (via HTTP); Mon, 1 Mar 2021 23:19:42 +0100 MIME-Version: 1.0 Message-ID: From: Harald Anlauf To: Harald Anlauf Cc: fortran , gcc-patches Subject: *PING* [PATCH] PR libfortran/99218 - [8/9/10/11 Regression] matmul on temporary array accesses invalid memory Content-Type: text/plain; charset=UTF-8 Date: Mon, 1 Mar 2021 23:19:42 +0100 Importance: normal Sensitivity: Normal In-Reply-To: References: X-UI-Message-Type: mail X-Priority: 3 X-Provags-ID: V03:K1:8qScBLfXOudgVH+g8UCIGUHPSAG4bmJbwzKkiDFoEPezdxtaHDgx8YVNYB24Nwpz8pPci yRcw72glmRgojJ5+GT/YiJ9a6920ja0/ev1eI5a32c4FEhlo3U9LwmC/6oBVMXC7X2vgl7E6qmxX lOZ7/GuWj9r/V+9uIBtW8w0wIl8HTBbiqSJkeWfx/rn5CxlT4lh+neiEuMPCnqETY5CNzoElRiEm bvMCDjQL1PvCADKrty4N18J//PyxSxcv+8+JUO8/03q0mh9GGsqpU1mypPx8eCQZwfxWke8cybus F0= X-UI-Out-Filterresults: notjunk:1;V03:K0:IkzTl6/g6iM=:qVR6mWmSDUqNPtuNSC2hDy kpzzE0BD1+muJLGk/vZJ2IAhOPpERgqlEKR4S4fc/FsBz5wh6PPdxdN4erR7bjCxLzD3TZ3y7 K4L1ktpeR01SscZ9YKKNdpxPQNH3wK9/EX1y1YVv15oQFVOSTk6xTHDzzpNJ8hu56luiLBYAa P99BWYdr+lEa0I4AjXasRMtNzAvP4S0rH41k5NbzzoBmqmy43zMDwzanM8iZAlskxihMDknw+ 7v5AIKvtCmlnaXTq/oyw88JJaaizi8x5IqbHLe1Svyg1awnGIagoFp20UzSvmk09bNF3sz7FM 78QAuh6+DHWnlabt48yMRY3G1lMfYBEoyDj8wOlStO23H2XORI5HKsKr9xeaFaqMUgSDjA8w2 cp7rhrNbLDuUYJbjH+VZ5ArPBc9hCb1J8vrQyFrC2ir0I98CzrBepAYJ8fRW6+w7VVvF7WC9s KZEDaV1MdeWDRC44EI+GoFCwQCl8YBRs7sIOLKmtL4iEDNorpTRYVwkvet+3I+Zn8fKwqiRBF lenYgsoM+w7a6yxqiL48nsLDmxfL2AFBddY3Yz0szMWMy8NLA9iHZbd6HyGahW+Bzmg8VX63/ i6kQYEhuvb9Tk= Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2021 22:19:45 -0000 Early ping. Harald > Gesendet: Dienstag, 23. Februar 2021 um 22:46 Uhr > Von: "Harald Anlauf" > An: "fortran" , "gcc-patches" > Betreff: [PATCH] PR libfortran/99218 - [8/9/10/11 Regression] matmul on = temporary array accesses invalid memory > > Dear all, > > under certain circumstances a call to MATMUL for rank-2 times rank-1 > would invoke a highly tuned rank-2 times rank-2 algorithm which could > lead to invalid reads and writes. The solution is to check the rank > of the second argument to matmul and fall back to a regular algorithm > for rank-1. The invalid accesses did show up with valgrind. > > I have not been able to create a testcase that gives wrong results. > > Regtested on x86_64-pc-linux-gnu, and verified with valgrind. > > OK for master? > > As this affects all open branches down to 8, ok for backports? > > Thanks, > Harald > > > PR libfortran/99218 - matmul on temporary array accesses invalid memory > > Do not invoke tuned rank-2 times rank-2 matmul if rank(b) =3D=3D 1. > > libgfortran/ChangeLog: > > PR libfortran/99218 > * m4/matmul_internal.m4: Invoke tuned matmul only for rank(b)>1. > * generated/matmul_c10.c: Regenerated. > * generated/matmul_c16.c: Likewise. > * generated/matmul_c4.c: Likewise. > * generated/matmul_c8.c: Likewise. > * generated/matmul_i1.c: Likewise. > * generated/matmul_i16.c: Likewise. > * generated/matmul_i2.c: Likewise. > * generated/matmul_i4.c: Likewise. > * generated/matmul_i8.c: Likewise. > * generated/matmul_r10.c: Likewise. > * generated/matmul_r16.c: Likewise. > * generated/matmul_r4.c: Likewise. > * generated/matmul_r8.c: Likewise. > * generated/matmulavx128_c10.c: Likewise. > * generated/matmulavx128_c16.c: Likewise. > * generated/matmulavx128_c4.c: Likewise. > * generated/matmulavx128_c8.c: Likewise. > * generated/matmulavx128_i1.c: Likewise. > * generated/matmulavx128_i16.c: Likewise. > * generated/matmulavx128_i2.c: Likewise. > * generated/matmulavx128_i4.c: Likewise. > * generated/matmulavx128_i8.c: Likewise. > * generated/matmulavx128_r10.c: Likewise. > * generated/matmulavx128_r16.c: Likewise. > * generated/matmulavx128_r4.c: Likewise. > * generated/matmulavx128_r8.c: Likewise. > >