[PATCH v4] Mode-Switching: Fix SET_SRC ICE for create_pre_exit

2023-08-12 Thread Pan Li via Gcc-patches
From: Pan Li In same cases, like gcc/testsuite/gcc.dg/pr78148.c in RISC-V, there will be only 1 operand when SET_SRC in create_pre_exit. For example as below. (insn 13 9 14 2 (clobber (reg/i:TI 10 a0)) "gcc/testsuite/gcc.dg/pr78148.c":24:1 -1 (expr_list:REG_UNUSED (reg/i:TI 10 a0)

Re: IRA update_equiv_regs for (was Re: ICE for interim fix for PR/110748)

2023-08-12 Thread Jivan Hakobyan via Gcc-patches
Yes, as mentioned Jeff I have some work in that scope. The first is related to address computation when it has a large constant part. Suppose we have this code: int consume (void *); int foo (void) { int x[1000]; return consume (x); } before IRA we have the following

[PATCH] RISC-V: Add the missed half floating-point mode patterns of local_pic_load/store when only use zfhmin

2023-08-12 Thread Lehua Ding
Hi, There is a new failed RISC-V testcase(testsuite/gcc.target/riscv/rvv/autovec/vls/const-4.c) on the current trunk branch when use medany as default cmodel. The reason is the load of half floating-point imm is convert from RTL 1 to RTL 2 as the cmodel be changed from medlow to medany. This

[PATCH] RISC-V: Fix autovec_length_operand predicate[PR110989]

2023-08-12 Thread Juzhe-Zhong
Currently, autovec_length_operand predicate incorrect configuration is discovered in PR110989 since this following situation: vect__6.24_107 = .MASK_LEN_LOAD (vectp.22_105, 32B, mask__49.21_99, POLY_INT_CST [2, 2], 0); ---> dummy length = VF. The current autovec length operand failed to

[PATCH v1] c++: follow DR 2386 and update implementation of get_tuple_size [PR110216]

2023-08-12 Thread gnaggnoyil via Gcc-patches
DR 2386 updated the tuple_size requirements for structured binding and it now requires tuple_size to be considered only if std::tuple_size names a complete class type with member value. GCC before this patch does not follow the updated requrements, and this patch is intended to implement it.

[PATCH] Add support for vector conitional not

2023-08-12 Thread Andrew Pinski via Gcc-patches
Like the support conditional neg (r12-4470-g20dcda98ed376cb61c74b2c71), this just adds conditional not too. Also we should be able to turn `(a ? -1 : 0) ^ b` into a conditional not. OK? Bootstrapped and tested on x86_64-linux-gnu and aarch64-linux-gnu. gcc/ChangeLog: * internal-fn.def