SIIntrinsics.td revision 249259
10SN/A//===-- SIIntrinsics.td - SI Intrinsic defs ----------------*- tablegen -*-===//
214779Spkbalakr//
30SN/A//                     The LLVM Compiler Infrastructure
40SN/A//
50SN/A// This file is distributed under the University of Illinois Open Source
60SN/A// License. See LICENSE.TXT for details.
72362SN/A//
80SN/A//===----------------------------------------------------------------------===//
92362SN/A//
100SN/A// SI Intrinsic Definitions
110SN/A//
120SN/A//===----------------------------------------------------------------------===//
130SN/A
140SN/A
150SN/Alet TargetPrefix = "SI", isTarget = 1 in {
160SN/A
170SN/A  def int_SI_packf16 : Intrinsic <[llvm_i32_ty], [llvm_float_ty, llvm_float_ty], [IntrNoMem]>;
180SN/A  def int_SI_export : Intrinsic <[], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty, llvm_float_ty], []>;
190SN/A  def int_SI_load_const : Intrinsic <[llvm_float_ty], [llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
200SN/A  def int_SI_vs_load_input : Intrinsic <[llvm_v4f32_ty], [llvm_v16i8_ty, llvm_i16_ty, llvm_i32_ty], [IntrNoMem]> ;
212362SN/A
222362SN/A  class Sample : Intrinsic <[llvm_v4f32_ty], [llvm_i32_ty, llvm_anyvector_ty, llvm_v32i8_ty, llvm_v16i8_ty, llvm_i32_ty], [IntrNoMem]>;
232362SN/A
240SN/A  def int_SI_sample : Sample;
250SN/A  def int_SI_sampleb : Sample;
260SN/A  def int_SI_samplel : Sample;
270SN/A
280SN/A  /* Interpolation Intrinsics */
290SN/A
300SN/A  def int_SI_fs_constant : Intrinsic <[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>;
310SN/A  def int_SI_fs_interp : Intrinsic <[llvm_float_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_v2i32_ty], [IntrNoMem]>;
320SN/A
330SN/A  /* Control flow Intrinsics */
340SN/A
350SN/A  def int_SI_if : Intrinsic<[llvm_i64_ty], [llvm_i1_ty, llvm_empty_ty], []>;
360SN/A  def int_SI_else : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_empty_ty], []>;
370SN/A  def int_SI_break : Intrinsic<[llvm_i64_ty], [llvm_i64_ty], []>;
380SN/A  def int_SI_if_break : Intrinsic<[llvm_i64_ty], [llvm_i1_ty, llvm_i64_ty], []>;
390SN/A  def int_SI_else_break : Intrinsic<[llvm_i64_ty], [llvm_i64_ty, llvm_i64_ty], []>;
400SN/A  def int_SI_loop : Intrinsic<[], [llvm_i64_ty, llvm_empty_ty], []>;
410SN/A  def int_SI_end_cf : Intrinsic<[], [llvm_i64_ty], []>;
420SN/A}
430SN/A