1249259Sdim//===-- R600Intrinsics.td - R600 Instrinsic defs -------*- tablegen -*-----===// 2249259Sdim// 3249259Sdim// The LLVM Compiler Infrastructure 4249259Sdim// 5249259Sdim// This file is distributed under the University of Illinois Open Source 6249259Sdim// License. See LICENSE.TXT for details. 7249259Sdim// 8249259Sdim//===----------------------------------------------------------------------===// 9249259Sdim// 10249259Sdim// R600 Intrinsic Definitions 11249259Sdim// 12249259Sdim//===----------------------------------------------------------------------===// 13249259Sdim 14249259Sdimlet TargetPrefix = "R600", isTarget = 1 in { 15263508Sdim class TextureIntrinsicFloatInput : 16263508Sdim Intrinsic<[llvm_v4f32_ty], [ 17263508Sdim llvm_v4f32_ty, // Coord 18263508Sdim llvm_i32_ty, // offset_x 19263508Sdim llvm_i32_ty, // offset_y, 20263508Sdim llvm_i32_ty, // offset_z, 21263508Sdim llvm_i32_ty, // resource_id 22263508Sdim llvm_i32_ty, // samplerid 23263508Sdim llvm_i32_ty, // coord_type_x 24263508Sdim llvm_i32_ty, // coord_type_y 25263508Sdim llvm_i32_ty, // coord_type_z 26263508Sdim llvm_i32_ty // coord_type_w 27263508Sdim ], [IntrNoMem]>; 28263508Sdim class TextureIntrinsicInt32Input : 29263508Sdim Intrinsic<[llvm_v4i32_ty], [ 30263508Sdim llvm_v4i32_ty, // Coord 31263508Sdim llvm_i32_ty, // offset_x 32263508Sdim llvm_i32_ty, // offset_y, 33263508Sdim llvm_i32_ty, // offset_z, 34263508Sdim llvm_i32_ty, // resource_id 35263508Sdim llvm_i32_ty, // samplerid 36263508Sdim llvm_i32_ty, // coord_type_x 37263508Sdim llvm_i32_ty, // coord_type_y 38263508Sdim llvm_i32_ty, // coord_type_z 39263508Sdim llvm_i32_ty // coord_type_w 40263508Sdim ], [IntrNoMem]>; 41263508Sdim 42249259Sdim def int_R600_load_input : 43249259Sdim Intrinsic<[llvm_float_ty], [llvm_i32_ty], [IntrNoMem]>; 44249259Sdim def int_R600_interp_input : 45249259Sdim Intrinsic<[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 46263508Sdim def int_R600_interp_const : 47263508Sdim Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty], [IntrNoMem]>; 48263508Sdimdef int_R600_interp_xy : 49263508Sdim Intrinsic<[llvm_v2f32_ty], [llvm_i32_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 50263508Sdimdef int_R600_interp_zw : 51263508Sdim Intrinsic<[llvm_v2f32_ty], [llvm_i32_ty, llvm_float_ty, llvm_float_ty], [IntrNoMem]>; 52249259Sdim def int_R600_load_texbuf : 53249259Sdim Intrinsic<[llvm_v4f32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; 54263508Sdim def int_R600_tex : TextureIntrinsicFloatInput; 55263508Sdim def int_R600_texc : TextureIntrinsicFloatInput; 56263508Sdim def int_R600_txl : TextureIntrinsicFloatInput; 57263508Sdim def int_R600_txlc : TextureIntrinsicFloatInput; 58263508Sdim def int_R600_txb : TextureIntrinsicFloatInput; 59263508Sdim def int_R600_txbc : TextureIntrinsicFloatInput; 60263508Sdim def int_R600_txf : TextureIntrinsicInt32Input; 61263508Sdim def int_R600_ldptr : TextureIntrinsicInt32Input; 62263508Sdim def int_R600_txq : TextureIntrinsicInt32Input; 63263508Sdim def int_R600_ddx : TextureIntrinsicFloatInput; 64263508Sdim def int_R600_ddy : TextureIntrinsicFloatInput; 65249259Sdim def int_R600_store_swizzle : 66249259Sdim Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty], []>; 67249259Sdim def int_R600_store_stream_output : 68249259Sdim Intrinsic<[], [llvm_v4f32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], []>; 69249259Sdim def int_R600_store_pixel_depth : 70249259Sdim Intrinsic<[], [llvm_float_ty], []>; 71249259Sdim def int_R600_store_pixel_stencil : 72249259Sdim Intrinsic<[], [llvm_float_ty], []>; 73249259Sdim def int_R600_store_dummy : 74249259Sdim Intrinsic<[], [llvm_i32_ty], []>; 75249259Sdim} 76