Commit Graph

198332 Commits

Author SHA1 Message Date
H.J. Lu a9fbc6687f libsanitizer: cherry-pick commit 742bcbf685bc from upstream
cherry-pick:

742bcbf685bc compiler-rt/lib: Add .Linterceptor_sigsetjmp

	PR sanitizer/108106
	* hwasan/hwasan_setjmp_x86_64.S (__interceptor_setjmp): Jump
	to .Linterceptor_sigsetjmp instead of __interceptor_sigsetjmp.
	(__interceptor_sigsetjmp): Add a local alias,
	.Linterceptor_sigsetjmp.
2023-01-31 14:56:59 -08:00
Thomas Schwinge 94cacee20d For Modula-2 build-tree testing, also set up paths to compiler libraries
Currently, 'gcc/testsuite/lib/gm2.exp:gm2_link_flags' doesn't set up
paths to compiler libraries (such as libgcc, which libstdc++
may depend on).  For example, I see my x86_64-pc-linux-gnu '-m32' testing
not pick up the build-tree libgcc, but instead some random system one,
which (expectedly) doesn't satisfy requirements of other build-tree
libraries:

    [...]/build-gcc/gcc/testsuite/gm225/m.x0: /lib/i386-linux-gnu/libgcc_s.so.1: version `GCC_7.0.0' not found (required by [...]/build-gcc/x86_64-pc-linux-gnu/32/libstdc++-v3/src/.libs/libstdc++.so.6)

..., and thus a lot of execution FAILs.

As seen in a number of other '[...]_link_flags' procedures, the standard idiom
seems to be to also consider 'gcc-set-multilib-library-path' for
'ld_library_path'.

	gcc/testsuite/
	* lib/gm2.exp (gm2_link_flags) [$gccpath != ""]: Also consider
	'gcc-set-multilib-library-path' for 'ld_library_path'.
2023-01-31 23:28:12 +01:00
Marek Polacek b2ec2504af c++: Add fixed test [PR102870]
This was fixed by r12-7857: now we properly reject instead of
crashing.

	PR c++/102870

gcc/testsuite/ChangeLog:

	* g++.dg/cpp0x/variadic184.C: New test.
2023-01-31 13:27:57 -05:00
Ju-Zhe Zhong 77906341ef RISC-V: Add vdiv*.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vdiv_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vdiv_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vdivu_vv_tumu-3.C: New test.
2023-02-01 00:47:42 +08:00
Ju-Zhe Zhong a97767c30b RISC-V: Add vmax*.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmax_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmax_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmaxu_vv_tumu-3.C: New test.
2023-02-01 00:47:42 +08:00
Ju-Zhe Zhong e2e93b9dee RISC-V: Add vmin*.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vmin_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vmin_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vminu_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong b928748686 RISC-V: Add vor.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vor_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vor_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vor_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vor_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong f4f00e44fd RISC-V: Add vrem*.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vrem_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vrem_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vremu_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong 147e602a4d RISC-V: Add vsll.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsll_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsll_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong 38e152f84b RISC-V: Add vsra.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsra_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsra_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong f4463ea86a RISC-V: Add vsrl.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vsrl_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsrl_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong 768a895253 RISC-V: Add vand.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vand_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vand_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vand_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vand_vv_tumu-3.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vsub_vv_tumu-3.C: New test.
2023-02-01 00:47:41 +08:00
Ju-Zhe Zhong e37c8f209e RISC-V: Add vxor.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vxor_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vxor_vv_tumu-3.C: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong 6344011ae3 RISC-V: Add vadd.vv C++ API tests
gcc/testsuite/ChangeLog:

	* g++.target/riscv/rvv/base/vadd_vv-1.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv-2.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv-3.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_mu-1.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_mu-2.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_mu-3.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tu-1.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tu-2.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tu-3.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tum-1.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tum-2.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tum-3.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tumu-1.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tumu-2.C: New test.
	* g++.target/riscv/rvv/base/vadd_vv_tumu-3.C: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong e96482d84e RISC-V: Add binop constraint tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/binop_vv_constraint-1.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong c2674f5b91 RISC-V: Add vadd.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vadd_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vadd_vv_tumu-3.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong 817d8f2ec5 RISC-V: Add vand.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vand_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vand_vv_tumu-3.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong a542b1feeb RISC-V: Add vdiv*.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vdiv_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdiv_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vdivu_vv_tumu-3.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong aa89ce6a65 RISC-V: Add vmax*.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vmax_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmax_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmaxu_vv_tumu-3.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong 7f51e62876 RISC-V: Add vmin*.vv C API tests
* gcc.target/riscv/rvv/base/vmin_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vmin_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vminu_vv_tumu-3.c: New test.
2023-02-01 00:47:40 +08:00
Ju-Zhe Zhong a581639528 RISC-V: Add vor.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vor_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vor_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 9d2fe103bf RISC-V: Add vrem*.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vrem_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vrem_vv_tumu-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vremu_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong f9979ac8a2 RISC-V: Add vsll.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsll_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsll_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 79d1e60cb8 RISC-V: Add vsra.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsra_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsra_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 4703a573d1 RISC-V: Add srl.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsrl_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsrl_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 88a4dc078a RISC-V: Add vsub.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vsub_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vsub_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 2db1fd76eb RISC-V: Add vxor.vv C API tests
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/rvv/base/vxor_vv-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv-3.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_m-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_m-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_m-3.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_mu-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_mu-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_mu-3.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tu-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tu-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tu-3.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tum-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tum-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tum-3.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tumu-1.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tumu-2.c: New test.
	* gcc.target/riscv/rvv/base/vxor_vv_tumu-3.c: New test.
2023-02-01 00:47:39 +08:00
Ju-Zhe Zhong 2a937fb5cf RISC-V: Add integer binary vv C/C++ API support
Add vector intrinsic for integer binary operation, but only vector to
vector form.

gcc/ChangeLog:

	* config/riscv/constraints.md (vj): New.
	(vk): Ditto
	* config/riscv/iterators.md: Add more opcode.
	* config/riscv/predicates.md (vector_arith_operand): New.
	(vector_neg_arith_operand): New.
	(vector_shift_operand): New.
	* config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
	* config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
	(vsub): Ditto.
	(vand): Ditto.
	(vor): Ditto.
	(vxor): Ditto.
	(vsll): Ditto.
	(vsra): Ditto.
	(vsrl): Ditto.
	(vmin): Ditto.
	(vmax): Ditto.
	(vminu): Ditto.
	(vmaxu): Ditto.
	(vmul): Ditto.
	(vdiv): Ditto.
	(vrem): Ditto.
	(vdivu): Ditto.
	(vremu): Ditto.
	* config/riscv/riscv-vector-builtins-functions.def (vadd): New.
	(vsub): Ditto.
	(vand): Ditto.
	(vor): Ditto.
	(vxor): Ditto.
	(vsll): Ditto.
	(vsra): Ditto.
	(vsrl): Ditto.
	(vmin): Ditto.
	(vmax): Ditto.
	(vminu): Ditto.
	(vmaxu): Ditto.
	(vmul): Ditto.
	(vdiv): Ditto.
	(vrem): Ditto.
	(vdivu): Ditto.
	(vremu): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
	* config/riscv/riscv-vector-builtins-shapes.h (binop): New.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
	(DEF_RVV_U_OPS): New.
	(rvv_arg_type_info::get_base_vector_type): Handle
	RVV_BASE_shift_vector.
	(rvv_arg_type_info::get_tree_type): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
	RVV_BASE_shift_vector.
	* config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
	* config/riscv/vector-iterators.md: Handle more opcode.
	* config/riscv/vector.md (@pred_<optab><mode>): New.
2023-02-01 00:47:39 +08:00
Marek Polacek 623730d954 c++: fix ICE with -Wduplicated-cond [PR107593]
Here we crash because a CAST_EXPR, representing T(), doesn't have
its operand, and operand_equal_p's STRIP_ANY_LOCATION_WRAPPER doesn't
expect that.  (o_e_p is called from warn_duplicated_cond_add_or_warn.)

In the past we've adjusted o_e_p to better cope with template codes,
but in this case I think we just want to avoid attempting to warn
about inst-dependent expressions; I don't think I've ever envisioned
-Wduplicated-cond to warn about them.  Also destroy the chain when
an inst-dependent expression is encountered to not warn in
Wduplicated-cond4.C.

The ICE started with r12-6022, two-stage name lookup for overloaded
operators, which gave dependent operators a TREE_TYPE (in particular,
DEPENDENT_OPERATOR_TYPE), so we no longer bail out here in o_e_p:

  /* Similar, if either does not have a type (like a template id),
     they aren't equal.  */
  if (!TREE_TYPE (arg0) || !TREE_TYPE (arg1))
    return false;

	PR c++/107593
	PR c++/108597

gcc/c-family/ChangeLog:

	* c-common.h (instantiation_dependent_expression_p): Declare.
	* c-warn.cc (warn_duplicated_cond_add_or_warn): If the condition
	is dependent, invalidate the chain.

gcc/c/ChangeLog:

	* c-objc-common.cc (instantiation_dependent_expression_p): New.

gcc/cp/ChangeLog:

	* cp-tree.h (instantiation_dependent_expression_p): Don't
	declare here.

gcc/testsuite/ChangeLog:

	* g++.dg/warn/Wduplicated-cond3.C: New test.
	* g++.dg/warn/Wduplicated-cond4.C: New test.
	* g++.dg/warn/Wduplicated-cond5.C: New test.
2023-01-31 11:35:45 -05:00
Philipp Tomsich a39c6ec979 PR target/108589 - Check REG_P for AARCH64_FUSE_ADDSUB_2REG_CONST1
This adds a check for REG_P on SET_DEST for the new idiom recognizer
for AARCH64_FUSE_ADDSUB_2REG_CONST1.  The reported ICE is only
observable with checking=rtl.

Bootstrapped/regtested aarch64-linux, committed.

	PR target/108589

gcc/ChangeLog:

	* config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
	REG_P on SET_DEST.

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/pr108589.c: New test.
2023-01-31 16:34:28 +01:00
Richard Sandiford 2bb444787e vect: Fix single def-use cycle for ifn reductions [PR108608]
The patch that added support for fmin/fmax reductions didn't
handle single def-use cycles.  In some ways, this seems like
going out of our way to make things slower, but that's a
discussion for another day.

gcc/
	PR tree-optimization/108608
	* tree-vect-loop.cc (vect_transform_reduction): Handle single
	def-use cycles that involve function calls rather than tree codes.

gcc/testsuite/
	PR tree-optimization/108608
	* gcc.dg/vect/pr108608.c: New test.
	* gcc.target/aarch64/sve/pr108608-1.c: Likewise.
2023-01-31 15:03:43 +00:00
Andrew MacLeod 1626ec53e8 Add op2_range to pointer_plus.
Implement op2_range for pointer_plus to determine the offset (operand 2) is
zero or non-zero based on equality/inequality between the LHS and op1.
Also allow GORI computations to continue if the LHS is VARYING and there
is also a relation.

	PR tree-optimization/108385
	gcc/
	* gimple-range-gori.cc (gori_compute::compute_operand_range):
	Allow VARYING computations to continue if there is a relation.
	* range-op.cc (pointer_plus_operator::op2_range): New.

	gcc/testsuite/
	* gcc.dg/pr108385.c: New.
2023-01-31 09:56:27 -05:00
Andrew MacLeod 809d661aff Utilize op1 == op2 when invoking range-ops folding.
If there exists an equivalence relationship between op1 and op2,
any binary operation can be broken into individual operations and
unioned if there are sufficently few elements in the set.

	PR tree-optimization/108359
	gcc/
	* range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
	(range_operator::fold_range): If op1 is equivalent to op2 then
	invoke new fold_in_parts_equiv to operate on sub-components.
	* range-op.h (wi_fold_in_parts_equiv): New prototype.

	gcc/testsuite/
	* gcc.dg/pr108359.c: New.
2023-01-31 09:56:27 -05:00
Andrew MacLeod 99fda5de36 Properly set GORI relation trios.
When relation trios were added to GORI, there was only one use.  As they are
utilized more by range-ops, it is apparent that the implelemtation was
not complete.  This patch fleshes it out completely so that every GORI
operation has a complete relation trio.

	* gimple-range-gori.cc (gori_compute::compute_operand_range): Do
	not abort calculations if there is a valid relation available.
	(gori_compute::refine_using_relation): Pass correct relation trio.
	(gori_compute::compute_operand1_range): Create trio and use it.
	(gori_compute::compute_operand2_range): Ditto.
	* range-op.cc (operator_plus::op1_range): Use correct trio member.
	(operator_minus::op1_range): Use correct trio member.
	* value-relation.cc (value_relation::create_trio): New.
	* value-relation.h (value_relation::create_trio): New prototype.
2023-01-31 09:56:27 -05:00
Richard Biener 7f583a3357 modula2/108462 - duplicate install of static modula2 target libs
The following addresses the fact that libgm2 installs static libraries
into two places, one performed by

toolexeclib_LTLIBRARIES = libm2cor.la

and one performed as part of the install-data-local rule to a
m2/m2cor subdirectory alongside Modula-2 .def and .mod files.

This patch opts to keep the copy installed by libtool and removes
the extra installs in the install-data-local rules.

I've built and installed both with and without
--enable-version-specific-runtime-libs and compiled and linked
a Modula-2 testcase with the installed compiler with the two
multilibs and with and without static successfully.

	PR modula2/108462
libgm2/
	* libm2cor/Makefile.am: Remove static lib install from
	install-data-local.
	* libm2iso/Makefile.am: Likewise.
	* libm2log/Makefile.am: Likewise.
	* libm2min/Makefile.am: Likewise.
	* libm2pim/Makefile.am: Likewise.
	* libm2cor/Makefile.in: Regenerate.
	* libm2iso/Makefile.in: Likewise.
	* libm2log/Makefile.in: Likewise.
	* libm2min/Makefile.in: Likewise.
	* libm2pim/Makefile.in: Likewise.
2023-01-31 15:54:17 +01:00
Philip Herron 50335ddd30 gccrs: Add testcase to show forward declared items work via TypeAlias
Fixes #1073

gcc/testsuite/ChangeLog:

	* rust/compile/issue-1073.rs: New test.
2023-01-31 14:16:52 +01:00
Philip Herron d9d7b6ccd4 gccrs: Add testcase to show forward declared items work
Fixes #1006

gcc/testsuite/ChangeLog:

	* rust/compile/issue-1006.rs: New test.
2023-01-31 14:16:52 +01:00
Philip Herron 104cc28553 gccrs: Refactor TypeResolution to be a simple query based system
This patch refactors the type resolution system to introduce a new
interface

  bool query_type (HirId, TyTy::BaseType** result)

This is needed in order to properly support forward declared items. Our
name resolution system has two parts:

  1. Toplevel scan
  2. Item resolution

The toplevel scan gathers all the nesseacry 'names' into their respective
namespace by doing a full toplevel scan and generate canonical paths for
each item. The second pass is responsible for drilling down into each
structure or function to resolve each field or variable etc. This means
our name resolution system supports forward decalred items but our type
resolution system did not.

This patch removes the toplevel scan from our type resolution pass which
is not able to handle all cases such as a function with return type and
the type is decalred after the fact or a type alias to a type declared
after the fact. The name resolution mappings are resolved so when errors
occured here we got errors such as unable to lookup HirId 1234, which meant
yes we have 'resolved' this reference to this HirId but we are unable to
find any type information for it. This means we needed a new way to figure
out the type in a query based way.

This is where the new query_type inferface comes in so when we have an
HirId we want to resolve the mappings class allows us to figure out what
item this is such as:

  1. HIR::Item (normal HIR::Function, Struct, TypeAlias, ...)
  2. HIR::ImplItem (function, constant, ... within an impl-block)
  3. HIR::ImplBlock (Self type on an impl-block)
  4. HIR::ExternalItem (extern-block item)

The mappings class allows us to simply lookup these HIR nodes and then
call the relevant resolver class to compute the type. This patch does not
add support for self-referencial types but is the starting point to be able
to support such types.

Fixes #1455

gcc/rust/ChangeLog:

	* Make-lang.in: Remove `rust-hir-typecheck-toplevel` object and add
	`rust-hir-path-probe` one.
	* typecheck/rust-hir-dot-operator.cc (MethodResolver::MethodResolver):
	Remove no longer used `context` and `mapping` fields, and use new
	`query_type` API.
	(MethodResolver::MethodResolver): Likewise.
	(MethodResolver::select): Use new `query_type` API.
	* typecheck/rust-hir-path-probe.h: New header.
	* typecheck/rust-hir-path-probe.cc: New file.
	* typecheck/rust-hir-dot-operator.h (class MethodResolver): Remove no
	longer used `context` and `mapping` fields, and use new `query_type` API.
	* typecheck/rust-hir-type-check-base.cc (TypeCheckBase::query_type): New function.
	* typecheck/rust-hir-type-check-base.h: Declare `query_type` function.
	* typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): Add debug print.
	* typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::Resolve):
	Refactor and make use of new query system.
	(TypeCheckTopLevelExternItem::Resolve): Likewise.
	(TypeCheckTopLevelExternItem::visit): Likewise.
	(TypeCheckTopLevelImplItem::visit): Likewise.
	(TypeCheckImplItem::visit): Likewise.
	(TypeCheckImplItem::TypeCheckImplItem): Likewise.
	(TypeCheckImplItem::Resolve): Likewise.
	(TypeCheckImplItemWithTrait::visit): Likewise.
	* typecheck/rust-hir-type-check-implitem.h (class TypeCheckTopLevelImplItem): Likewise.
	(class TypeCheckImplItemWithTrait): Likewise.
	* typecheck/rust-hir-type-check-item.cc (TypeCheckItem::TypeCheckItem): Likewise.
	(TypeCheckItem::Resolve): Likewise.
	(TypeCheckItem::ResolveImplItem): Likewise.
	(TypeCheckItem::ResolveImplBlockSelf): Likewise.
	(TypeCheckItem::visit): Likewise.
	(TypeCheckItem::resolve_impl_item): Likewise.
	(TypeCheckItem::resolve_impl_block_substitutions): Likewise.
	(TypeCheckItem::resolve_impl_block_self): Likewise.
	* typecheck/rust-hir-type-check-item.h: Likewise.
	* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise.
	(TypeCheckExpr::resolve_segments): Likewise.
	* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
	* typecheck/rust-hir-type-check-stmt.h: Likewise.
	* typecheck/rust-hir-type-check-type.cc (TypeCheckType::Resolve): Likewise.
	(TypeCheckType::visit): Likewise.
	(TypeCheckType::resolve_root_path): Likewise.
	* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
	* typecheck/rust-hir-type-check.h: Likewise.
	* typecheck/rust-substitution-mapper.h: Likewise.
	* typecheck/rust-tyty-bounds.cc (TypeBoundsProbe::scan): Likewise.
	(TypeCheckBase::get_predicate_from_bound): Likewise.
	(TypeBoundsMappings::add_bound): Likewise.
	* typecheck/rust-tyty-cmp.h: Likewise.
	* typecheck/rust-tyty.h: Likewise.
	* typecheck/rust-tyty.cc (SubstitutionRef::infer_substitions): Likewise.
	(ParamType::resolve): Do not infinite loop anymore.
	* util/rust-hir-map.h: Add new `hirImplBlockTypeMappings` and
	declare `lookup_impl_block_type`.
	* util/rust-hir-map.cc (Mappings::insert_hir_impl_block): Use new
	`hirImplBlockTypeMappings`
	(Mappings::lookup_impl_block_type): New function.

gcc/testsuite/ChangeLog:

	* rust/compile/const_generics_5.rs: Fix assertions.
	* rust/compile/unconstrained_type_param.rs: Add more assertions.
2023-01-31 14:16:52 +01:00
Philip Herron 11a37f8950 gccrs: Fix duplicated function generation on higher ranked trait bounds
Deuplicate function elimination can fail when we compile helpers during
higher ranked trait bound monomorphization. This because the
TyTy::BaseType info can be lost/reset during the compilation process. This
adds a second mechanism to match based on the manged names which is a bit
more reliable. This patch is required since the query based refactor of
the type system so this issue was likely hidden to to using duplicated type
info for higher ranked trait bounds.

gcc/rust/ChangeLog:

	* backend/rust-compile-context.h: Add new optional `asm_name` string
	argument to `lookup_function_decl`.
	* backend/rust-compile-item.cc (CompileItem::visit): Compute assembly
	name and pass it to `lookup_function_decl` when calling it.
2023-01-31 14:16:52 +01:00
Philip Herron 9c60f0e1e5 gccrs: Make constexpr constructors type-checking more permissive
gcc/rust/ChangeLog:

	* backend/rust-constexpr.cc (eval_store_expression): Remove invalid
	assertion on constexpr constructors.
2023-01-31 14:16:52 +01:00
Philip Herron e1beb624ff gccrs: Cleanup formatting of backend expression visitor
gcc/rust/ChangeLog:

	* backend/rust-compile-expr.h: Formatting.
2023-01-31 14:16:52 +01:00
liushuyu c6c4342273 gccrs: testsuite/rust: add a testcase for testing ...
... builtin macro and decl macro mixed expansion

gcc/testsuite/ChangeLog:

	* rust/compile/builtin_macro_recurse.rs: New test.

Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
2023-01-31 14:16:52 +01:00
liushuyu e88ce5cc68 gccrs: expand: eager evaluate macros inside builtin macros
gcc/rust/ChangeLog:

	* ast/rust-ast.h (class MacroInvocData): Store expander as
	member of the class.
	(class Expr): Add `is_literal` virtual method
	* ast/rust-expr.h: Override `is_literal` for `LiteralExpr`s.
	* expand/rust-macro-builtins.cc (try_expand_macro_expression): New function.
	(try_extract_string_literal_from_fragment): Likewise.
	(try_expand_single_string_literal): Likewise.
	(try_expand_many_expr): Likewise.
	(parse_single_string_literal): Add macro expander as argument.
	(MacroBuiltin::include_bytes): Pass expander as argument to
	`parse_single_string_literal`.
	(MacroBuiltin::include_str): Likewise.
	(MacroBuiltin::compile_error): Likewise.
	(MacroBuiltin::include): Likewise.
	(MacroBuiltin::concat): Likewise and add better error handling.
	(MacroBuiltin::env): Likewise.
	* expand/rust-macro-expand.cc (MacroExpander::expand_invoc): Expand
	invocations recursively.

gcc/testsuite/ChangeLog:

	* rust/compile/builtin_macro_concat.rs: Fix test error messages.
	* rust/compile/builtin_macro_env.rs: Likewise.

Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
2023-01-31 14:16:52 +01:00
Arthur Cohen 9d6b434e1f gccrs: rust: Add -frust-compile-until option
This option helps ensure that we do not introduce regressions on various
parts of the compilation pipeline. For example, a testcase (or testsuite
from the `testing` project) might pass attribute checking, expansion and
lowering, but fail during typechecking. Should a change suddenly make
that testcase fail expansion, we would not be able to notice it. By
generating tests that run up until expansion, typechecking, compilation
and so forth we ensure that no regressions are added accidentally to
already failing tests/testsuites.

gcc/rust/ChangeLog:

	* lang.opt: Add new ``-frust-compile-until` option.
	* rust-session-manager.cc (Session::compile_crate): Add stops around
	various compilation steps in the pipeline.
	* rust-session-manager.h (struct CompileOptions): Add `CompileStep` enum
	and field.

gcc/testsuite/ChangeLog:

	* rust/compile/frust-compile-until.rs: New test.
2023-01-31 14:16:52 +01:00
Philip Herron f92f8ee75b gccrs: Add testcase for const-eval issue from rust-blog
see:
https://blog.rust-lang.org/2022/09/15/const-eval-safety-rule-revision.html

gcc/testsuite/ChangeLog:

	* rust/compile/rust-const-blog-issue.rs: New test.
2023-01-31 14:16:52 +01:00
Philip Herron a0c2ea3ee6 gccrs: remove bad assertion
gcc/rust/ChangeLog:

	* backend/rust-tree.cc (rs_type_quals): Comment out bad assertion
2023-01-31 14:16:51 +01:00
Philip Herron 408ab8a6e4 gccrs: Statics are a coercion site
Statics can be assigned to a block expression meaning they need to behave
similarly to constant items.

gcc/rust/ChangeLog:

	* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit):
	Make static items behave more similarly to const items.
2023-01-31 14:16:51 +01:00
Philip Herron 70fc174b78 gccrs: Static Items must be const evaluated
Statics like constants need to have a singular value they are not functions
to be lazy evaluated. So to evaluate a block expr we can just reuse our
const code to resolve this to a singular value.

gcc/rust/ChangeLog:

	* backend/rust-compile-item.cc (CompileItem::visit): Const evaluate
	static item expressions.
2023-01-31 14:16:51 +01:00
Arthur Cohen 3736647947 gccrs: module lowering: Do not append null pointers as items
Some module items do not need to get lowered to HIR such as `macro_rules!` definitions. Hence, module lowering should act the same as crate lowering: Only emplace back the lowered item if it is a valid pointer

gcc/rust/ChangeLog:

	* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Do not lower
	null items within modules.

gcc/testsuite/ChangeLog:

	* rust/compile/macro44.rs: New test.
2023-01-31 14:16:51 +01:00
Arthur Cohen 739d0509ed gccrs: attributes: Add #[macro_use] as builtin
gcc/rust/ChangeLog:

	* util/rust-attributes.cc: Add `macro_use` to list of builtin
	attributes.

gcc/testsuite/ChangeLog:

	* rust/compile/macro_export_1.rs: New test.
2023-01-31 14:16:51 +01:00