diff options
| author | Geoff Berry <gberry@codeaurora.org> | 2015-07-31 15:55:54 +0000 |
|---|---|---|
| committer | Geoff Berry <gberry@codeaurora.org> | 2015-07-31 15:55:54 +0000 |
| commit | 8a7ef3b2eec5e6046a3aab36521813c8ea6093e0 (patch) | |
| tree | 3373143a0e2e52c23a150827fe3622b619c49bc1 /llvm/lib | |
| parent | 9e737939fb00f17a76b62d40aac468c9f2e59c26 (diff) | |
| download | bcm5719-llvm-8a7ef3b2eec5e6046a3aab36521813c8ea6093e0.tar.gz bcm5719-llvm-8a7ef3b2eec5e6046a3aab36521813c8ea6093e0.zip | |
[AArch64] Favor extended reg patterns for sub
Summary:
Favor the extended reg patterns over the shifted reg patterns that match
only the operand shift and not the full sign/zero extend and shift.
Reviewers: jmolloy, t.p.northover
Subscribers: mcrosier, aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D11569
llvm-svn: 243753
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64InstrInfo.td | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td index 48ac7b8f681..7a0690dae7d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -613,10 +613,12 @@ def : Pat<(sub GPR32:$Rn, arith_shifted_reg32:$Rm), (SUBSWrs GPR32:$Rn, arith_shifted_reg32:$Rm)>; def : Pat<(sub GPR64:$Rn, arith_shifted_reg64:$Rm), (SUBSXrs GPR64:$Rn, arith_shifted_reg64:$Rm)>; +let AddedComplexity = 1 in { def : Pat<(sub GPR32sp:$R2, arith_extended_reg32<i32>:$R3), (SUBSWrx GPR32sp:$R2, arith_extended_reg32<i32>:$R3)>; def : Pat<(sub GPR64sp:$R2, arith_extended_reg32to64<i64>:$R3), (SUBSXrx GPR64sp:$R2, arith_extended_reg32to64<i64>:$R3)>; +} // Because of the immediate format for add/sub-imm instructions, the // expression (add x, -1) must be transformed to (SUB{W,X}ri x, 1). |

