diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2020-01-07 14:35:21 +0000 |
---|---|---|
committer | Andrew Stubbs <ams@gcc.gnu.org> | 2020-01-07 14:35:21 +0000 |
commit | 66b01cc3421055806f51ac36a8d237536970504c (patch) | |
tree | 3de52ccce5677baf7051c972f5ec102bac8a5b24 /gcc/config/gcn/constraints.md | |
parent | 77aecac1b2564fd6087c424e3400f053202a79e0 (diff) | |
download | gcc-66b01cc3421055806f51ac36a8d237536970504c.zip gcc-66b01cc3421055806f51ac36a8d237536970504c.tar.gz gcc-66b01cc3421055806f51ac36a8d237536970504c.tar.bz2 |
Disallow 'B' constraints on amdgcn addc/subb
2020-01-07 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/gcn/constraints.md (DA): Update description and match.
(DB): Likewise.
(Db): New constraint.
* config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second
parameter.
* config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter.
Implement 'Db' mixed immediate type.
* config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints.
(addcv64si3_dup<exec_vcc>): Delete.
(subcv64si3<exec_vcc>): Rework constraints.
(addv64di3): Rework constraints.
(addv64di3_exec): Rework constraints.
(subv64di3): Rework constraints.
(addv64di3_dup): Delete.
(addv64di3_dup_exec): Delete.
(addv64di3_zext): Rework constraints.
(addv64di3_zext_exec): Rework constraints.
(addv64di3_zext_dup): Rework constraints.
(addv64di3_zext_dup_exec): Rework constraints.
(addv64di3_zext_dup2): Rework constraints.
(addv64di3_zext_dup2_exec): Rework constraints.
(addv64di3_sext_dup2): Rework constraints.
(addv64di3_sext_dup2_exec): Rework constraints.
From-SVN: r279959
Diffstat (limited to 'gcc/config/gcn/constraints.md')
-rw-r--r-- | gcc/config/gcn/constraints.md | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/config/gcn/constraints.md b/gcc/config/gcn/constraints.md index f2de943..dd6615b 100644 --- a/gcc/config/gcn/constraints.md +++ b/gcc/config/gcn/constraints.md @@ -53,12 +53,17 @@ (match_test "gcn_constant64_p (op)"))) (define_constraint "DA" - "Splittable inline immediate 64-bit parameter" + "Immediate 64-bit parameter, low and high part match 'A'" (and (match_code "const_int,const_double,const_vector") - (match_test "gcn_inline_constant64_p (op)"))) + (match_test "gcn_inline_constant64_p (op, 0)"))) + +(define_constraint "Db" + "Immediate 64-bit parameter, low part matches 'B', high part matches 'A'" + (and (match_code "const_int,const_double,const_vector") + (match_test "gcn_inline_constant64_p (op, 1)"))) (define_constraint "DB" - "Splittable immediate 64-bit parameter" + "Immediate 64-bit parameter, low and high part match 'B'" (match_code "const_int,const_double,const_vector")) (define_constraint "U" |