diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2014-02-06 18:36:38 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2014-02-06 18:36:38 +0000 |
commit | becac0f183be5743a27ced2a59cb2ce191206b71 (patch) | |
tree | b674920a00fec20267beb639c53aeac1d8622282 /lib/Target | |
parent | 22274378d5ec800c08246d179ea003a5c85d3cb9 (diff) | |
download | llvm-becac0f183be5743a27ced2a59cb2ce191206b71.tar.gz llvm-becac0f183be5743a27ced2a59cb2ce191206b71.tar.bz2 llvm-becac0f183be5743a27ced2a59cb2ce191206b71.tar.xz |
R600/SI: Add a MUBUF load pattern for Reg+Imm offsets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200933 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/R600/SIInstructions.td | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td index d00deba0d4..429624a05a 100644 --- a/lib/Target/R600/SIInstructions.td +++ b/lib/Target/R600/SIInstructions.td @@ -1960,6 +1960,11 @@ defm : SMRD_Pattern <S_LOAD_DWORDX16_IMM, S_LOAD_DWORDX16_SGPR, v16i32>; multiclass MUBUFLoad_Pattern <MUBUF Instr_ADDR64, ValueType vt, PatFrag global_ld, PatFrag constant_ld> { def : Pat < + (vt (global_ld (add (add i64:$ptr, i64:$offset), IMM12bit:$imm_offset))), + (Instr_ADDR64 (SI_ADDR64_RSRC $ptr), $offset, (as_i16imm $imm_offset)) + >; + + def : Pat < (vt (global_ld (add i64:$ptr, (i64 IMM12bit:$offset)))), (Instr_ADDR64 (SI_ADDR64_RSRC (i64 0)), $ptr, (as_i16imm $offset)) >; |