Home | History | Annotate | Download | only in R600
      1 //===-- R600Intrinsics.td - R600 Instrinsic defs -------*- tablegen -*-----===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // R600 Intrinsic Definitions
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 let TargetPrefix = "R600", isTarget = 1 in {
     15   class TextureIntrinsicFloatInput :
     16     Intrinsic<[llvm_v4f32_ty], [
     17       llvm_v4f32_ty, // Coord
     18       llvm_i32_ty, // offset_x
     19       llvm_i32_ty, // offset_y,
     20       llvm_i32_ty, // offset_z,
     21       llvm_i32_ty, // resource_id
     22       llvm_i32_ty, // samplerid
     23       llvm_i32_ty, // coord_type_x
     24       llvm_i32_ty, // coord_type_y
     25       llvm_i32_ty, // coord_type_z
     26       llvm_i32_ty // coord_type_w
     27     ], [IntrNoMem]>;
     28   class TextureIntrinsicInt32Input :
     29     Intrinsic<[llvm_v4i32_ty], [
     30       llvm_v4i32_ty, // Coord
     31       llvm_i32_ty, // offset_x
     32       llvm_i32_ty, // offset_y,
     33       llvm_i32_ty, // offset_z,
     34       llvm_i32_ty, // resource_id
     35       llvm_i32_ty, // samplerid
     36       llvm_i32_ty, // coord_type_x
     37       llvm_i32_ty, // coord_type_y
     38       llvm_i32_ty, // coord_type_z
     39       llvm_i32_ty // coord_type_w
     40     ], [IntrNoMem]>;
     41 
     42   def int_R600_load_input :
     43     Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>;
     44   def int_R600_interp_input :
     45     Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
     46   def int_R600_load_texbuf :
     47     Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
     48   def int_R600_tex : TextureIntrinsicFloatInput;
     49   def int_R600_texc : TextureIntrinsicFloatInput;
     50   def int_R600_txl : TextureIntrinsicFloatInput;
     51   def int_R600_txlc : TextureIntrinsicFloatInput;
     52   def int_R600_txb : TextureIntrinsicFloatInput;
     53   def int_R600_txbc : TextureIntrinsicFloatInput;
     54   def int_R600_txf : TextureIntrinsicInt32Input;
     55   def int_R600_txq : TextureIntrinsicInt32Input;
     56   def int_R600_ddx : TextureIntrinsicFloatInput;
     57   def int_R600_ddy : TextureIntrinsicFloatInput;
     58   def int_R600_store_swizzle :
     59     Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], []>;
     60   def int_R600_store_stream_output :
     61     Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>;
     62   def int_R600_store_pixel_depth :
     63       Intrinsic<[], [llvm_float_ty], []>;
     64   def int_R600_store_pixel_stencil :
     65       Intrinsic<[], [llvm_float_ty], []>;
     66   def int_R600_store_dummy :
     67       Intrinsic<[], [llvm_i32_ty], []>;
     68 }
     69