mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
Add 64-bit extload patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ab05b6c227
commit
acb5a06f7a
@ -240,11 +240,21 @@ def : Pat<(i64 imm:$imm),
|
||||
|
||||
// extended loads
|
||||
let Predicates = [NotN64] in {
|
||||
def : Pat<(extloadi32_a addr:$a), (DSRL (DSLL (LW64 addr:$a), 32), 32)>;
|
||||
def : Pat<(i64 (extloadi1 addr:$src)), (LB64 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi8 addr:$src)), (LB64 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi16_a addr:$src)), (LH64 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi16_u addr:$src)), (ULH64 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi32_a addr:$src)), (LW64 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi32_u addr:$src)), (ULW64 addr:$src)>;
|
||||
def : Pat<(zextloadi32_u addr:$a), (DSRL (DSLL (ULW64 addr:$a), 32), 32)>;
|
||||
}
|
||||
let Predicates = [IsN64] in {
|
||||
def : Pat<(extloadi32_a addr:$a), (DSRL (DSLL (LW64_P8 addr:$a), 32), 32)>;
|
||||
def : Pat<(i64 (extloadi1 addr:$src)), (LB64_P8 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi8 addr:$src)), (LB64_P8 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi16_a addr:$src)), (LH64_P8 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi16_u addr:$src)), (ULH64_P8 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi32_a addr:$src)), (LW64_P8 addr:$src)>;
|
||||
def : Pat<(i64 (extloadi32_u addr:$src)), (ULW64_P8 addr:$src)>;
|
||||
def : Pat<(zextloadi32_u addr:$a), (DSRL (DSLL (ULW64_P8 addr:$a), 32), 32)>;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user