R600: Make store_dummy intrinsic more general by passing export type
authorTom Stellard <thomas.stellard@amd.com>
Thu, 31 Jan 2013 22:11:46 +0000 (22:11 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 31 Jan 2013 22:11:46 +0000 (22:11 +0000)
Patch by: Vincent Lejeune

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174097 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/R600Instructions.td
lib/Target/R600/R600Intrinsics.td

index 04b83bc87bfc9d641fdc4eeeb2add19a20b16194..86ee0bb0d30417c05e64a584065d405c752e09ad 100644 (file)
@@ -589,9 +589,14 @@ multiclass ExportPattern<Instruction ExportInst, bits<8> cf_inst> {
         0, 61, 7, 0, 7, 7, cf_inst, 0)
   >;
 
-  def : Pat<(int_R600_store_pixel_dummy),
+  def : Pat<(int_R600_store_dummy (i32 imm:$type)),
     (ExportInst
-        (v4f32 (IMPLICIT_DEF)), 0, 0, 7, 7, 7, 7, cf_inst, 0)
+        (v4f32 (IMPLICIT_DEF)), imm:$type, 0, 7, 7, 7, 7, cf_inst, 0)
+  >;
+
+  def : Pat<(int_R600_store_dummy 1),
+    (ExportInst
+        (v4f32 (IMPLICIT_DEF)), 1, 60, 7, 7, 7, 7, cf_inst, 0)
   >;
 
   def : Pat<(EXPORT (v4f32 R600_Reg128:$src), (i32 0),
index 1394a85461914641677aa7988de73a0e84469438..9d416a604807b7a10bce456241b2d9bc656be5a5 100644 (file)
@@ -29,6 +29,6 @@ let TargetPrefix = "R600", isTarget = 1 in {
       Intrinsic<[], [llvm_float_ty], []>;
   def int_R600_store_pixel_stencil :
       Intrinsic<[], [llvm_float_ty], []>;
-  def int_R600_store_pixel_dummy :
-      Intrinsic<[], [], []>;
+  def int_R600_store_dummy :
+      Intrinsic<[], [llvm_i32_ty], []>;
 }