1//===-- PTXBaseInfo.h - Top level definitions for PTX -------- --*- C++ -*-===//
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// This file contains small standalone helper functions and enum definitions for
11// the PTX target useful for the compiler back-end and the MC libraries.
12// As such, it deliberately does not include references to LLVM core
13// code gen types, passes, etc..
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef PTXBASEINFO_H
18#define PTXBASEINFO_H
19
20#include "PTXMCTargetDesc.h"
21
22namespace llvm {
23  namespace PTXStateSpace {
24    enum {
25      Global    = 0, // default to global state space
26      Constant  = 1,
27      Local     = 2,
28      Parameter = 3,
29      Shared    = 4
30    };
31  } // namespace PTXStateSpace
32
33  namespace PTXPredicate {
34    enum {
35      Normal = 0,
36      Negate = 1,
37      None   = 2
38    };
39  } // namespace PTXPredicate
40
41  /// Namespace to hold all target-specific flags.
42  namespace PTXRoundingMode {
43    // Instruction Flags
44    enum {
45      // Rounding Mode Flags
46      RndMask             = 15,
47      RndDefault          =  0, // ---
48      RndNone             =  1, // <NONE>
49      RndNearestEven      =  2, // .rn
50      RndTowardsZero      =  3, // .rz
51      RndNegInf           =  4, // .rm
52      RndPosInf           =  5, // .rp
53      RndApprox           =  6, // .approx
54      RndNearestEvenInt   =  7, // .rni
55      RndTowardsZeroInt   =  8, // .rzi
56      RndNegInfInt        =  9, // .rmi
57      RndPosInfInt        = 10  // .rpi
58    };
59  } // namespace PTXII
60} // namespace llvm
61
62#endif
63
64