mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-03 18:29:48 +00:00
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
57 lines
2.5 KiB
TableGen
57 lines
2.5 KiB
TableGen
//===- ValueTypes.td - ValueType definitions ---------------*- tablegen -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file was developed by Chris Lattner and is distributed under
|
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Value types - These values correspond to the register types defined in the
|
|
// ValueTypes.h file. If you update anything here, you must update it there as
|
|
// well!
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
class ValueType<int size, int value> {
|
|
string Namespace = "MVT";
|
|
int Size = size;
|
|
int Value = value;
|
|
}
|
|
|
|
def OtherVT: ValueType<0 , 0>; // "Other" value
|
|
def i1 : ValueType<1 , 1>; // One bit boolean value
|
|
def i8 : ValueType<8 , 2>; // 8-bit integer value
|
|
def i16 : ValueType<16 , 3>; // 16-bit integer value
|
|
def i32 : ValueType<32 , 4>; // 32-bit integer value
|
|
def i64 : ValueType<64 , 5>; // 64-bit integer value
|
|
def i128 : ValueType<128, 6>; // 128-bit integer value
|
|
def f32 : ValueType<32 , 7>; // 32-bit floating point value
|
|
def f64 : ValueType<64 , 8>; // 64-bit floating point value
|
|
def f80 : ValueType<80 , 9>; // 80-bit floating point value
|
|
def f128 : ValueType<128, 10>; // 128-bit floating point value
|
|
def ppcf128: ValueType<128, 11>; // PPC 128-bit floating point value
|
|
def FlagVT : ValueType<0 , 12>; // Condition code or machine flag
|
|
def isVoid : ValueType<0 , 13>; // Produces no value
|
|
def v8i8 : ValueType<64 , 14>; // 8 x i8 vector value
|
|
def v4i16 : ValueType<64 , 15>; // 4 x i16 vector value
|
|
def v2i32 : ValueType<64 , 16>; // 2 x i32 vector value
|
|
def v1i64 : ValueType<64 , 17>; // 1 x i64 vector value
|
|
|
|
def v16i8 : ValueType<128, 18>; // 16 x i8 vector value
|
|
def v8i16 : ValueType<128, 19>; // 8 x i16 vector value
|
|
def v3i32 : ValueType<96 , 20>; // 3 x i32 vector value
|
|
def v4i32 : ValueType<128, 21>; // 4 x i32 vector value
|
|
def v2i64 : ValueType<128, 22>; // 2 x i64 vector value
|
|
|
|
def v2f32 : ValueType<64, 23>; // 2 x f32 vector value
|
|
def v3f32 : ValueType<96 , 24>; // 3 x f32 vector value
|
|
def v4f32 : ValueType<128, 25>; // 4 x f32 vector value
|
|
def v2f64 : ValueType<128, 26>; // 2 x f64 vector value
|
|
|
|
// Pseudo valuetype to represent "integer of any bit width"
|
|
def iAny : ValueType<0 , 254>;
|
|
|
|
// Pseudo valuetype mapped to the current pointer size.
|
|
def iPTR : ValueType<0 , 255>;
|