LoongArch failed to pass gcc.dg/pr104992.c with -mlsx and -mlasx. This test uses
different dg-final directives depending on the vect_int_mod result, LoongArch
SX/ASX supports this operations but corresponding description is not defined in
target-supports.exp. This patch solves the problem above wit
The comment of vfrint-related intrinsic functions does not match the return
value type in definition. This patch fixes these comments.
gcc/ChangeLog:
* config/loongarch/lasxintrin.h (__lasx_xvftintrnel_l_s): Fix comments.
(__lasx_xvfrintrne_s): Ditto.
(__lasx_xvfrintrne_d)
gcc/ChangeLog:
* config/loongarch/lsx.md: Fix instruction name typo in
lsx_vreplgr2vr_ template.
---
gcc/config/loongarch/lsx.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/loongarch/lsx.md b/gcc/config/loongarch/lsx.md
index 4af32c8dfe1..55c7d79
This is an update of :
https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624770.html
Changes since last version:
- Revert vabsd/xvabsd RTL templates to unspec impl, because arithmetic RTL
expression
cannot cover the edge case of the instruction output. v2 impl of vabsd/xvabsd
template
cau
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
This is an update of:
https://gcc.gnu.org/pipermail/gcc-patches/2023-August/626194.html
This version of patch set only introduces some small simplications of
implementation. Because I missed the size limitation of mail size, the
huge testsuite patches of v2 and v3 are not shown in the mail list. S
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
issue because in real life use() can be in another
> translation
> unit (or even a shared library) compiled with -mno-lsx. So it seems
> we
> need to tell the compiler "a function call may clobber the high bits
> of
> a vector register even if the corresponding floating-poin
This is an update of:
https://gcc.gnu.org/pipermail/gcc-patches/2023-August/627413.html
Changes since last version of patch set:
- Fix regression test fail of pr54346.c with
RUNTESTFLAGS="--target_board=unix/-mlsx".
This is caused by the code simplification of
loongarch_expand_vec_perm_const_2
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Add compilation framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.c:
This is an update of:
https://gcc.gnu.org/pipermail/gcc-patches/2023-August/628303.html
Changes since last version of patch set:
- "dg-skip-if"-related Changes of the g++.dg/torture/vshuf* testcases are
reverted.
(Replaced by __builtin_shuffle fix)
- Add fix of __builtin_shuffle() for Loongson
17:41 +0800, Xi Ruoyao wrote:
> On Thu, 2023-08-31 at 17:08 +0800, Chenghui Pan wrote:
> > This is an update of:
> > https://gcc.gnu.org/pipermail/gcc-patches/2023-August/628303.html
> >
> > Changes since last version of patch set:
> > - "dg-skip-if&q
These macros are completely same in definition, so we can keep the previous one
and
eliminate later one.
gcc/ChangeLog:
* config/loongarch/loongarch.cc (loongarch_hard_regno_mode_ok_uncached):
Combine UNITS_PER_FP_REG and UNITS_PER_FPREG macros.
(loongarch_hard_regno_nreg
This function is always return true at the end of function implementation,
so the return value is useless.
gcc/ChangeLog:
* config/loongarch/lasx.md: Remove checking of
loongarch_expand_vec_cmp()'s
return value.
* config/loongarch/loongarch-protos.h (loongarch_expand_vec_
There's some ununsed/useless definition inside LoongArch target support
codes, these patches make a simple cleanup. Regression test passed.
Chenghui Pan (3):
LoongArch: Remove unused/useless definitions.
LoongArch: Change loongarch_expand_vec_cmp()'s return type from bool
This patch removes some unnecessary definitions of target hook
functions according to the documentation of GCC.
gcc/ChangeLog:
* config/loongarch/loongarch-protos.h
(loongarch_cfun_has_cprestore_slot_p): Delete.
(loongarch_adjust_insn_length): Delete.
(current_section_nam
The behavior of non-zero unused bits in xvpermi.q instruction's
third operand is undefined on LoongArch, according to our
discussion (https://github.com/llvm/llvm-project/pull/83540),
we think that keeping original insn operand as unmodified
state is better solution.
This patch partially reverts 7
The behavior of non-zero unused bits in xvpermi.q instruction's
third operand is undefined on LoongArch, according to our
discussion (https://github.com/llvm/llvm-project/pull/83540),
we think that keeping original insn operand as unmodified
state is better solution.
This patch partially reverts 7
This patch removes some unnecessary definitions of target hook functions
according to the documentation of GCC.
gcc/ChangeLog:
* config/loongarch/loongarch-protos.h
(loongarch_cfun_has_cprestore_slot_p): Delete.
(loongarch_adjust_insn_length): Delete.
(current_sect
This function is always return true at the end of function implementation,
so the return value is useless.
gcc/ChangeLog:
* config/loongarch/lasx.md (vec_cmp): Remove checking
of loongarch_expand_vec_cmp()'s return value.
(vec_cmpu): Ditto.
* config/loongarch/lsx.m
These macros are completely same in definition, so we can keep the previous one
and eliminate later one.
gcc/ChangeLog:
* config/loongarch/loongarch.cc
(loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
UNITS_PER_FPREG macros.
(loongarch_hard_reg
Changes from v1: Some correction about ChangeLog format.
There's some unused/redundant definitions inside LoongArch target support
codes, these patches make a simple cleanup. Regression test passed.
Chenghui Pan (3):
LoongArch: Remove unused/useless definitions.
LoongArch: C
Current document of Tree SSA passes contains many parts that is not
updated for many years.
This patch removes some info that is outdated and not existed in
current GCC codebase, and fixes some wrong code location descriptions
based on current codebase status and ChangeLogs.
gcc/ChangeLog:
Current document of Tree SSA passes contains many parts that is not
updated for many years.
This patch removes some info that is outdated and not existed in
current GCC codebase, and fixes some wrong code location descriptions
based on current codebase status and ChangeLogs.
Changes since v1: Add
Seems right. I will reference them.
Also I think maybe some documents for the passes are still missing and
we can add them
in the future...
On 2024/3/26 08:11, Andrew Pinski wrote:
On Sun, Mar 24, 2024 at 8:46 PM Chenghui Pan wrote:
Current document of Tree SSA passes contains many parts
Current document of Tree SSA passes contains many parts that is not
updated for many years.
This patch removes some info that is outdated and not existed in
current GCC codebase, and fixes some wrong code location descriptions
based on current codebase status and ChangeLogs.
Changes since v1:
* v
Hi, I checked the correctness of spec2017 and regression test of gcc, it
seems ok!
On 2023/12/18 17:04, chenglulu wrote:
转发的消息
主题: [PATCH] LoongArch: Fix FP vector comparsons [PR113034]
日期: Sun, 17 Dec 2023 23:12:18 +0800
发件人:Xi Ruoyao
收件人:gcc-patches@gcc.gnu.
The patches are look ok and no problem in spec2017 correctness check.
On 2023/12/19 15:26, chenglulu wrote:
We will read and test these patches as soon as possible.
Thanks!
在 2023/12/19 下午2:59, Xi Ruoyao 写道:
Superseds
https://gcc.gnu.org/pipermail/gcc-patches/2023-December/640871.html.
Per J
Following code will cause ICE on LoongArch target:
#include
extern void bar (__m128i, __m128i);
__m128i a;
void
foo ()
{
bar (a, a);
}
It is caused by missing constraint definition in mov_lsx. This
patch fixes the template and remove the unnecessary processing from
loongarch
When investigaing failure of gcc.dg/vect/slp-reduc-sad.c, following
instruction block are being generated by vec_concatv32qi (which is
generated by vec_initv32qiv16qi) at entrance of foo() function:
vldx$vr3,$r5,$r6
vld $vr2,$r5,0
xvpermi.q $xr2,$xr3,0x20
causes the reversion
Ping. Is this version of patch ok for trunk? thanks!
On 2024/3/26 09:54, Chenghui Pan wrote:
Current document of Tree SSA passes contains many parts that is not
updated for many years.
This patch removes some info that is outdated and not existed in
current GCC codebase, and fixes some wrong
These patches add the Loongson SX/ASX instruction support to the LoongArch
target, and can be utilized by using the new "-mlsx" and
"-mlasx" option.
Patches are bootstrapped and tested on loongarch64-linux-gnu target.
Lulu Cheng (6):
LoongArch: Added Loongson SX vector directive compilation fra
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Added compilation
framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Added compilation
framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.
bit
atomic load and store. See https://gcc.gnu.org/bugzilla/PR104688 for
the background, and some people really hate using a lock for atomics.
On Fri, 2023-06-30 at 10:16 +0800, Chenghui Pan wrote:
These patches add the Loongson SX/ASX instruction support to the
LoongArch
target, and can be u
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Added compilation
framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.
From: Lulu Cheng
gcc/ChangeLog:
* config/loongarch/genopts/loongarch-strings: Added compilation
framework.
* config/loongarch/genopts/loongarch.opt.in: Ditto.
* config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins): Ditto.
* config/loongarch/loongarch-def.
This is an update of
https://gcc.gnu.org/pipermail/gcc-patches/2023-June/623262.html
In addition, LSX/LASX instructions support is added in the master branch of
binutils-gdb,
and these GCC patches can be used with future releases of binutils-gdb.
Changes since v1:
- Some usages of "unspec" in l
Thanks for your advice! I will check it out and submit a new version of
patch.
On Sun, 2023-09-24 at 18:05 +0800, Xi Ruoyao wrote:
> On Wed, 2023-09-20 at 09:15 +0800, Chenghui Pan wrote:
> > LoongArch failed to pass gcc.dg/pr104992.c with -mlsx and -mlasx.
> > This test uses
&
is not affected by DEFAULT_CFLAGS, so we still need to check
if LSX/LASX is available in vect_int_mod.
Other parts of new patch is still WIP.
On Sun, 2023-09-24 at 18:05 +0800, Xi Ruoyao wrote:
> On Wed, 2023-09-20 at 09:15 +0800, Chenghui Pan wrote:
> > LoongArch failed to pass gcc.dg/pr1049
Thanks! I will try to improve it.
On Mon, 2023-09-25 at 17:44 +0800, Xi Ruoyao wrote:
> On Mon, 2023-09-25 at 17:38 +0800, Chenghui Pan wrote:
> > Hi!
> >
> > After some attemptions, I think we still ne to check
> > "check_effective_target_loongarch_sx" i
gcc/testsuite/ChangeLog:
* lib/target-supports.exp: Enable vect.exp for LoongArch.
---
gcc/testsuite/lib/target-supports.exp | 31 +++
1 file changed, 31 insertions(+)
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
inde
gcc/testsuite/ChangeLog:
* lib/target-supports.exp: Add LoongArch in
check_effective_target_vect_int_mod according to ISA capabilities.
---
gcc/testsuite/lib/target-supports.exp | 18 ++
1 file changed, 18 insertions(+)
diff --git a/gcc/testsuite/lib/target-suppor
"check_effective_target_loongarch_sx"
in "proc check_effective_target_vect_int_mod {}" to choose correct dg-final
directives for LoongArch, because DEFAULT_VECTCFLAGS cannot affect pr104992.c
which is invoked by gcc.dg/dg.exp (not vect.exp).
Chenghui Pan (2):
Enable vect.exp for LoongArch
Correction: vect.exp will be set to run when target is capable of
running LASX instructions, otherwise it will be compiled only.
On Tue, 2023-09-26 at 19:56 +0800, Chenghui Pan wrote:
> This is an update of:
> https://gcc.gnu.org/pipermail/gcc-patches/2023-September/630953.html
>
>
gcc/testsuite/ChangeLog:
* lib/target-supports.exp: Enable vect.exp for LoongArch.
---
gcc/testsuite/lib/target-supports.exp | 31 +++
1 file changed, 31 insertions(+)
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
inde
This is the update of:
https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631379.html
This version does not include changes for codes, but fixes the commit title
format and appends the missing PR info.
Chenghui Pan (2):
LoongArch: Enable vect.exp for LoongArch. [PR111424]
LoongArch
gcc/testsuite/ChangeLog:
* lib/target-supports.exp: Add LoongArch in
check_effective_target_vect_int_mod according to SX/ASX capabilities.
---
gcc/testsuite/lib/target-supports.exp | 18 ++
1 file changed, 18 insertions(+)
diff --git a/gcc/testsuite/lib/target-sup
Following test code triggers unrecognized insn ICE on LoongArch target
with "-O3 -mlasx":
void
foo (unsigned char *dst, unsigned char *src)
{
for (int y = 0; y < 16; y++)
{
for (int x = 0; x < 16; x++)
dst[x] = src[x] + 1;
dst += 32;
src += 32;
}
}
ICE info:
./
52 matches
Mail list logo