aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/gcn/constraints.md
diff options
context:
space:
mode:
authorAndrew Stubbs <ams@codesourcery.com>2020-01-07 14:35:21 +0000
committerAndrew Stubbs <ams@gcc.gnu.org>2020-01-07 14:35:21 +0000
commit66b01cc3421055806f51ac36a8d237536970504c (patch)
tree3de52ccce5677baf7051c972f5ec102bac8a5b24 /gcc/config/gcn/constraints.md
parent77aecac1b2564fd6087c424e3400f053202a79e0 (diff)
downloadgcc-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.md11
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"