8sa1-gcc/gcc/config
Alex Coplan 67d56b2720 arm: Various MVE vec_duplicate fixes [PR99647]
This patch fixes various issues with vec_duplicate in the MVE patterns.
Currently there are two patterns named *mve_mov<mode>. The second of
these is really a vector duplicate rather than a move, so I've renamed
it accordingly.

As it stands, there are several issues with this pattern:
1. The MVE_types iterator has an entry for TImode, but
   vec_duplicate:TI is invalid.
2. The mode of the operand to vec_duplicate is SImode, but it should
   vary according to the vector mode iterator.
3. The second alternative of this pattern is bogus: it allows matching
   symbol_refs (the cause of the PR) and const_ints (which means that it
   matches (vec_duplicate (const_int ...)) which is non-canonical: such
   rtxes should be const_vectors instead and handled by the main vector
   move pattern).

This patch fixes all of these issues, and removes the redundant
*mve_vec_duplicate<mode> pattern.

gcc/ChangeLog:

	PR target/99647
	* config/arm/iterators.md (MVE_vecs): New.
	(V_elem): Also handle V2DF.
	* config/arm/mve.md (*mve_mov<mode>): Rename to ...
	(*mve_vdup<mode>): ... this. Remove second alternative since
	vec_duplicate of const_int is not canonical RTL, and we don't
	want to match symbol_refs.
	(*mve_vec_duplicate<mode>): Delete (pattern is redundant).

gcc/testsuite/ChangeLog:

	PR target/99647
	* gcc.c-torture/compile/pr99647.c: New test.
2021-04-08 09:36:57 +01:00
..
aarch64 Handle CONST_POLY_INTs in CONST_VECTORs [PR97141, PR98726] 2021-03-31 19:34:00 +01:00
alpha
arc arc: Remove orphan function. 2021-03-09 12:32:20 +02:00
arm arm: Various MVE vec_duplicate fixes [PR99647] 2021-04-08 09:36:57 +01:00
avr
bfin
bpf
c6x
cr16
cris cris: define HARD_FRAME_POINTER_REGNUM 2021-03-11 03:43:48 +01:00
csky C-SKY: Describe ck802 bypass accurately. 2021-04-06 20:48:32 +08:00
epiphany
fr30
frv
ft32
gcn amdgcn: Typo fix 2021-03-19 10:51:43 +00:00
h8300
i386 x86: Update memcpy/memset inline strategies for Skylake family CPUs 2021-04-06 05:36:00 -07:00
ia64
iq2000
lm32
m32c
m32r
m68k
mcore
microblaze
mips d: Define IN_TARGET_CODE in all machine-specific D language files. 2021-03-26 16:14:18 +01:00
mmix
mn10300 Add input_modes parameter to TARGET_MD_ASM_ADJUST hook 2021-03-04 14:33:41 +01:00
moxie
msp430
nds32 Add input_modes parameter to TARGET_MD_ASM_ADJUST hook 2021-03-04 14:33:41 +01:00
nios2 nios2: Fix format complaints and similar diagnostics. 2021-03-17 14:41:31 -07:00
nvptx nvptx: properly use flag_patchable_function_entry 2021-02-10 18:52:45 +01:00
or1k
pa d: Define IN_TARGET_CODE in all machine-specific D language files. 2021-03-26 16:14:18 +01:00
pdp11 Add input_modes parameter to TARGET_MD_ASM_ADJUST hook 2021-03-04 14:33:41 +01:00
pru
riscv d: Define IN_TARGET_CODE in all machine-specific D language files. 2021-03-26 16:14:18 +01:00
rl78
rs6000 rs6000: Avoid -fpatchable-function-entry* regressions on powerpc64 be [PR98125] 2021-04-03 10:03:15 +02:00
rx Fix building the RX port of gcc. 2021-03-09 15:29:23 +00:00
s390 d: Define IN_TARGET_CODE in all machine-specific D language files. 2021-03-26 16:14:18 +01:00
sh
sparc d: Define IN_TARGET_CODE in all machine-specific D language files. 2021-03-26 16:14:18 +01:00
stormy16
tilegx
tilepro
v850 Fix building the V850 port using recent versions of gcc. 2021-03-18 12:57:25 +00:00
vax Add input_modes parameter to TARGET_MD_ASM_ADJUST hook 2021-03-04 14:33:41 +01:00
visium Add input_modes parameter to TARGET_MD_ASM_ADJUST hook 2021-03-04 14:33:41 +01:00
vms
vxworks
xtensa
darwin-c.c
darwin-d.c
darwin-driver.c
darwin-f.c
darwin-ppc-ldouble-patch.def
darwin-protos.h dwarf2unwind : Force the CFA after remember/restore pairs [44107/48097]. 2021-03-01 19:37:09 +00:00
darwin-sections.def
darwin.c Darwin : Fix out-of-bounds access to df_regs_ever_live. 2021-04-03 21:28:15 +01:00
darwin.h dwarf2unwind : Force the CFA after remember/restore pairs [44107/48097]. 2021-03-01 19:37:09 +00:00
darwin.opt
dbx.h
dbxcoff.h
dbxelf.h
default-c.c
default-d.c
dragonfly-d.c
dragonfly-stdint.h
dragonfly.h
dragonfly.opt
elfos.h
flat.h
freebsd-d.c [freebsd] d: Fix build failures on sparc64-*-freebsd* 2021-03-26 16:14:12 +01:00
freebsd-nthr.h
freebsd-spec.h
freebsd-stdint.h
freebsd.h
freebsd.opt
fuchsia.h
fused-madd.opt
g.opt
glibc-c.c
glibc-d.c
glibc-stdint.h
gnu-user.h
gnu-user.opt
gnu.h
host-darwin.c Darwin : Address a translation comment. 2021-03-23 19:42:36 +00:00
host-darwin.h
host-hpux.c
host-linux.c
host-netbsd.c
host-openbsd.c
host-solaris.c
hpux11.opt
hpux-stdint.h
initfini-array.h
kfreebsd-gnu.h
kopensolaris-gnu.h
linux-android.h
linux-android.opt
linux-protos.h
linux.c
linux.h
linux.opt
lynx.h
lynx.opt
netbsd-d.c
netbsd-elf.h
netbsd-elf.opt
netbsd-protos.h
netbsd-stdint.h
netbsd.c
netbsd.h
netbsd.opt
newlib-stdint.h
openbsd-d.c d: Add openbsd support for D compiler [PR99691] 2021-03-26 16:14:00 +01:00
openbsd-libpthread.h
openbsd-stdint.h
openbsd.h
openbsd.opt
phoenix.h
print-sysroot-suffix.sh
README
rpath.opt
rtems.h RTEMS: Fix default linker script 2021-01-25 12:31:23 +01:00
rtems.opt
sol2-c.c
sol2-clearcap.map
sol2-clearcapv2.map
sol2-cxx.c
sol2-d.c
sol2-protos.h
sol2-stubs.c
sol2.c
sol2.h
sol2.opt
t-darwin
t-dragonfly
t-freebsd
t-glibc
t-libunwind
t-linux
t-lynx
t-musl
t-netbsd
t-openbsd d: Add openbsd support for D compiler [PR99691] 2021-03-26 16:14:00 +01:00
t-pnt16-warn
t-rtems
t-slibgcc
t-sol2
t-sysroot-suffix
t-uclibc
t-vxworks
t-winnt
tm-dwarf2.h
usegas.h
usegld.h
vx-common.h
vxworks-c.c
vxworks-dummy.h
vxworks-stdint.h
vxworks.c
vxworks.h
vxworks.opt
vxworksae.h target/99660 - missing VX_CPU_PREFIX for vxworksae 2021-03-19 16:16:39 +00:00
winnt-c.c
x-cflags-O1
x-darwin
x-hpux
x-linux
x-netbsd
x-openbsd
x-solaris

This directory contains machine-specific files for the GNU C compiler.
It has a subdirectory for each basic CPU type.
The only files in this directory itself
are some .h files that pertain to particular operating systems
and are used for more than one CPU type.