[PATCH v2, rs6000] Add multiply-add expand pattern [PR103109]

2022-08-07 Thread HAO CHEN GUI via Gcc-patches
Hi, This patch adds an expand and several insns for multiply-add with three 64bit operands. Compared with last version, the main changes are: 1 The "maddld" pattern is reused for the low-part generation. 2 A runnable testcase replaces the original compiling case. 3 Fixes indention problems.

Re: [PATCH][_GLIBCXX_DEBUG] Refine singular iterator state

2022-08-07 Thread François Dumont via Gcc-patches
Another version of this patch with just a new test case showing what wrong code was unnoticed previously by the _GLIBCXX_DEBUG mode. On 04/08/22 22:56, François Dumont wrote: This an old patch I had prepared a long time ago, I don't think I ever submitted it.     libstdc++: [_GLIBCXX_DEBUG] D

Re: 回复:[PATCH v5] LoongArch: add movable attribute

2022-08-07 Thread Lulu Cheng
在 2022/8/5 下午5:53, Xi Ruoyao 写道: On Fri, 2022-08-05 at 15:58 +0800, Lulu Cheng wrote: I think the model of precpu is not very easy to describe. model(got)?model(global)? I also want to use attribute model and -mcmodel together, but this is just an initial idea, what do you think? It seems I

[PATCH] rs6000: Fix incorrect RTL for Power LE when removing the UNSPECS [PR106069]

2022-08-07 Thread Xionghu Luo via Gcc-patches
The native RTL expression for vec_mrghw should be same for BE and LE as they are register and endian-independent. So both BE and LE need generate exactly same RTL with index [0 4 1 5] when expanding vec_mrghw with vec_select and vec_concat. (set (reg:V4SI 141) (vec_select:V4SI (vec_concat:V8SI

[PATCH] Fix middle-end/103645: empty struct store not removed when using compound literal

2022-08-07 Thread apinski--- via Gcc-patches
From: Andrew Pinski For compound literals empty struct stores are not removed as they go down a different path of the gimplifier; trying to optimize the init constructor. This fixes the problem by not adding the gimple assignment at the end of gimplify_init_constructor if it was an empty type. N

[COMMITTED] Move testcase gcc.dg/tree-ssa/pr93776.c to gcc.c-torture/compile/pr93776.c

2022-08-07 Thread apinski--- via Gcc-patches
From: Andrew Pinski Since this testcase is not exactly SSA specific and it would be a good idea to compile this at more than just at -O1, moving it to gcc.c-torture/compile would do that. Committed as obvious after a test on x86_64-linux-gnu. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/

[Committed] Add -mno-stv to new gcc.target/i386/cmpti2.c test case.

2022-08-07 Thread Roger Sayle
Adding -march=cascadelake to the command line options of the new cmpti2.c testcase triggers TImode STV and produces vector code that doesn't match the scalar implementation that this test was intended to check. Adding -mno-stv to the options fixes this. Committed as obvious. 2022-08-07 Roger

[r13-1982 Regression] FAIL: gcc.target/i386/cmpti2.c scan-assembler-times xorq 4 on Linux/x86_64

2022-08-07 Thread haochen.jiang via Gcc-patches
On Linux/x86_64, a46bca36b7b3a8a7e15b04225fb2b4f9b1bed62c is the first bad commit commit a46bca36b7b3a8a7e15b04225fb2b4f9b1bed62c Author: Roger Sayle Date: Sun Aug 7 08:49:48 2022 +0100 Allow any immediate constant in *cmp_doubleword splitter on x86_64. caused FAIL: gcc.target/i386/cmpti

[PATCH] middle-end: Optimize ((X >> C1) & C2) != C3 for more cases.

2022-08-07 Thread Roger Sayle
Following my middle-end patch for PR tree-optimization/94026, I'd promised Jeff Law that I'd clean up the dead-code in fold-const.cc now that these optimizations are handled in match.pd. Alas, I discovered things aren't quite that simple, as the transformations I'd added avoided cases where C2 ov

[x86 PATCH take #2] Add peephole2 to reduce double word register shuffling

2022-08-07 Thread Roger Sayle
This is a resubmission of my patch from June to fix some forms of inefficient register allocation using an additional peephole2 in i386.md. https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596064.html Since the original, a number of supporting patches/improvements have been reviewed and approv