R600/SI: Use complex pattern for MUBUF load patterns.
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 17 Oct 2014 17:43:00 +0000 (17:43 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Fri, 17 Oct 2014 17:43:00 +0000 (17:43 +0000)
This eliminates a use of the SI_ADDR64_RSRC pseudo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220057 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/SIInstructions.td

index 6e4321d7c6715ddbec138685f84f5fe311334e35..5c5248bdef990e22e4b80dc80e309ac9bf4dc112 100644 (file)
@@ -2690,10 +2690,9 @@ def : DSAtomicCmpXChg<DS_CMPST_RTN_B64, i64, atomic_cmp_swap_64_local>;
 multiclass MUBUFLoad_Pattern <MUBUF Instr_ADDR64, ValueType vt,
                               PatFrag constant_ld> {
   def : Pat <
-     (vt (constant_ld (add i64:$ptr, i64:$offset))),
-     (Instr_ADDR64 (SI_ADDR64_RSRC $ptr), $offset, 0)
+     (vt (constant_ld (MUBUFAddr64 v4i32:$srsrc, i64:$vaddr, i16:$offset))),
+     (Instr_ADDR64 $srsrc, $vaddr, $offset)
   >;
-
 }
 
 defm : MUBUFLoad_Pattern <BUFFER_LOAD_SBYTE_ADDR64, i32, sextloadi8_constant>;