Define target value types in a form usable by target-independent code
[oota-llvm.git] / include / llvm / CodeGen / ValueTypes.h
1 //===- CodeGen/ValueTypes.h - Low-Level Target independ. types --*- C++ -*-===//
2 //
3 // This file defines the set of low-level target independent types which various
4 // values in the code generator are.  This allows the target specific behavior
5 // of instructions to be described to target independent passes.
6 //
7 //===----------------------------------------------------------------------===//
8
9 #ifndef LLVM_CODEGEN_VALUETYPES_H
10 #define LLVM_CODEGEN_VALUETYPES_H
11
12 /// MVT namespace - This namespace defines the ValueType enum, which contains
13 /// the various low-level value types.
14 ///
15 namespace MVT {  // MRF = Machine Register Flags
16   enum ValueType {
17     Other          =   0 << 0,   // This is a non-standard value
18     i1             =   1 << 0,   // This is a 1 bit integer value
19     i8             =   1 << 1,   // This is an 8 bit integer value
20     i16            =   1 << 2,   // This is a 16 bit integer value
21     i32            =   1 << 3,   // This is a 32 bit integer value
22     i64            =   1 << 4,   // This is a 64 bit integer value
23     i128           =   1 << 5,   // This is a 128 bit integer value
24
25     f32             =   1 << 6,   // This is a 32 bit floating point value
26     f64             =   1 << 7,   // This is a 64 bit floating point value
27     f80             =   1 << 8,   // This is a 80 bit floating point value
28     f128            =   1 << 9,   // This is a 128 bit floating point value
29   };
30 };
31
32 #endif
33