diff options
author | Andrew Stubbs <ams@codesourcery.com> | 2020-01-29 16:59:08 +0000 |
---|---|---|
committer | Andrew Stubbs <ams@codesourcery.com> | 2020-01-31 16:01:24 +0000 |
commit | b92709388b9aee52db3cd7c227818e0ecccda2e5 (patch) | |
tree | a3e4ed70def6560b739b639e2cfb980f40ec18d5 /gcc/config/gcn | |
parent | 828573a573553e9c38f0431f0998de8c905f8460 (diff) |
Fix conditional add LRA failure for amdgcn
Fix ICE in testcase gfortran.dg/assumed_rank_bounds_3.f90.
2020-01-31 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each
alternative only.
Diffstat (limited to 'gcc/config/gcn')
-rw-r--r-- | gcc/config/gcn/gcn-valu.md | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/config/gcn/gcn-valu.md b/gcc/config/gcn/gcn-valu.md index 4aad835b2ef..ecdd60b8190 100644 --- a/gcc/config/gcn/gcn-valu.md +++ b/gcc/config/gcn/gcn-valu.md @@ -1200,13 +1200,14 @@ (set_attr "length" "8")]) (define_insn_and_split "addv64di3_exec" - [(set (match_operand:V64DI 0 "register_operand" "= &v, &v") + [(set (match_operand:V64DI 0 "register_operand" "= &v, &v, &v") (vec_merge:V64DI (plus:V64DI - (match_operand:V64DI 1 "register_operand" "%vDb,vDb0") - (match_operand:V64DI 2 "gcn_alu_operand" "vDb0, vDb")) - (match_operand:V64DI 3 "gcn_register_or_unspec_operand" " U0, U0") - (match_operand:DI 4 "gcn_exec_reg_operand" " e, e"))) + (match_operand:V64DI 1 "register_operand" "%vDb,vDb0,vDb") + (match_operand:V64DI 2 "gcn_alu_operand" "vDb0, vDb,vDb")) + (match_operand:V64DI 3 "gcn_register_or_unspec_operand" + " U, U, 0") + (match_operand:DI 4 "gcn_exec_reg_operand" " e, e, e"))) (clobber (reg:DI VCC_REG))] "" "#" |