Re: [PATCH v2 0/2] arm: recognize vdupq idioms [PR124043]

Richard Earnshaw via Sourceware Forge <[email protected]> Mon, 03 Aug 2026 13:34:49 +0000
Newsgroups gmane.comp.gcc.patches
Message-ID <bmm.hl00p3j0hs.gcc.gcc.rearnsha.208.7039.CMT@forge-stage.sourceware.org>
@azoff wrote in https://forge.sourceware.org/gcc/gcc/pulls/208#issuecomment-7038:

> I took v2 for a spin and the crypto tests are changed from XFAIL -> PASS, but there are the following regressions for -mfloat-abi=soft:
> 
> +FAIL: gcc.target/arm/armv8_2-fp16-neon-1.c scan-assembler-times vdup\.16\td[0-9]+, r[0-9]+ 2 
> +FAIL: gcc.target/arm/armv8_2-fp16-neon-1.c scan-assembler-times vdup\.16\tq[0-9]+, r[0-9]+ 2 
> +FAIL: gcc.target/arm/armv8_2-fp16-neon-1.c scan-assembler-times vdup\.16\td[0-9]+, d[0-9]+\[1\] 1 
> +FAIL: gcc.target/arm/armv8_2-fp16-neon-1.c scan-assembler-times vdup\.16\tq[0-9]+, d[0-9]+\[1\] 1


This is just some more fallout of the new code sequence.  For a couple of tests we now get
```
	lsrs	r3, r0, #16
	vdup.16	d16, r3
	vmov	r0, r1, d16  @ v4hf
```
instead of the inferior
```
	vmov	d16, r0, r1  @ v4hf
	vdup.16	d16, d16[1]
	vmov	r0, r1, d16  @ v4hf
```

or similar for the 128-bit result types.  Other tests then fail because scan-assembler looks across the entire file and we hit increased matches on other scans.

I've fixed all the issues by converting the relevant scan-assembler tests to match-function-bodies tests.


--
https://forge.sourceware.org/gcc/gcc/pulls/208#issuecomment-7039