summaryrefslogtreecommitdiff
path: root/include/llvm/IR/IntrinsicsTGSI.td
blob: 1bb6c9b630949a075590012e4d939c276728184f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//===--- IntrinsicsTGSI.td - Defines TGSI intrinsics -----*- tablegen -*---===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines all of the TGSI-specific intrinsics.
//
//===----------------------------------------------------------------------===//

let TargetPrefix = "tgsi" in {

class TGSIReadPreloadRegisterIntrinsic<string name>
  : Intrinsic<[llvm_i32_ty], [], [IntrNoMem]>,
    GCCBuiltin<name>;

multiclass TGSIReadPreloadRegisterIntrinsic_xyz<string prefix> {
  def _x : TGSIReadPreloadRegisterIntrinsic<!strconcat(prefix, "_x")>;
  def _y : TGSIReadPreloadRegisterIntrinsic<!strconcat(prefix, "_y")>;
  def _z : TGSIReadPreloadRegisterIntrinsic<!strconcat(prefix, "_z")>;
}

defm int_tgsi_read_blockid : TGSIReadPreloadRegisterIntrinsic_xyz <
                                       "__builtin_tgsi_read_blockid">;
defm int_tgsi_read_blocksize : TGSIReadPreloadRegisterIntrinsic_xyz <
                                       "__builtin_tgsi_read_blocksize">;
defm int_tgsi_read_gridsize : TGSIReadPreloadRegisterIntrinsic_xyz <
                                       "__builtin_tgsi_read_gridsize">;
defm int_tgsi_read_threadid : TGSIReadPreloadRegisterIntrinsic_xyz <
                                       "__builtin_tgsi_read_threadid">;

} // End TargetPrefix = "tgsi"