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