Skip to content
Snippets Groups Projects
Commit 19e565ed authored by Kyrylo Tkachov's avatar Kyrylo Tkachov
Browse files

aarch64: Check CONSTM1_RTX in definition of Dm constraint


The constraint Dm is intended to match vectors of minus 1, but actually
checks for CONST1_RTX. This doesn't have a bad effect in practice as its
only use in the aarch64_wrffr pattern for the setffr instruction which
is a VNx16BI operation and -1 and 1 are the same there. That pattern
can only be currently generated through intrinsics anyway that create it
with a CONSTM1_RTX constant.

Fix the constraint definition so that it doesn't become a footgun if its
used in some other pattern.

Bootstrapped and tested on aarch64-none-linux-gnu.

Signed-off-by: default avatarKyrylo Tkachov <ktkachov@nvidia.com>

gcc/ChangeLog:

	* config/aarch64/constraints.md (Dm): Match CONSTM1_RTX rather
	CONST1_RTX.
parent 77ccfa6a
No related branches found
No related tags found
No related merge requests found
......@@ -556,7 +556,7 @@
"@internal
A constraint that matches a vector of immediate minus one."
(and (match_code "const,const_vector")
(match_test "op == CONST1_RTX (GET_MODE (op))")))
(match_test "op == CONSTM1_RTX (GET_MODE (op))")))
(define_constraint "Dd"
"@internal
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment