Skip to content

Commit 617df20

Browse files
committed
[CodeGen] Add larger vector types for i32 and f32
Some out of tree backend require larger vector type. Since maintaining the changes out of tree is difficult due to the many manual changes needed when adding a new type we are adding it even if no backend currently use it. Differential Revision: https://reviews.llvm.org/D64141 Patch by Thomas Raoux! llvm-svn: 365274
1 parent 8baf838 commit 617df20

File tree

5 files changed

+304
-196
lines changed

5 files changed

+304
-196
lines changed

llvm/include/llvm/CodeGen/ValueTypes.td

+99-87
Original file line numberDiff line numberDiff line change
@@ -62,93 +62,105 @@ def v32i16 : ValueType<512, 38>; // 32 x i16 vector value
6262
def v64i16 : ValueType<1024,39>; // 64 x i16 vector value
6363
def v128i16: ValueType<2048,40>; //128 x i16 vector value
6464

65-
def v1i32 : ValueType<32 , 41>; // 1 x i32 vector value
66-
def v2i32 : ValueType<64 , 42>; // 2 x i32 vector value
67-
def v3i32 : ValueType<96 , 43>; // 3 x i32 vector value
68-
def v4i32 : ValueType<128, 44>; // 4 x i32 vector value
69-
def v5i32 : ValueType<160, 45>; // 5 x i32 vector value
70-
def v8i32 : ValueType<256, 46>; // 8 x i32 vector value
71-
def v16i32 : ValueType<512, 47>; // 16 x i32 vector value
72-
def v32i32 : ValueType<1024,48>; // 32 x i32 vector value
73-
def v64i32 : ValueType<2048,49>; // 64 x i32 vector value
74-
75-
def v1i64 : ValueType<64 , 50>; // 1 x i64 vector value
76-
def v2i64 : ValueType<128, 51>; // 2 x i64 vector value
77-
def v4i64 : ValueType<256, 52>; // 4 x i64 vector value
78-
def v8i64 : ValueType<512, 53>; // 8 x i64 vector value
79-
def v16i64 : ValueType<1024,54>; // 16 x i64 vector value
80-
def v32i64 : ValueType<2048,55>; // 32 x i64 vector value
81-
82-
def v1i128 : ValueType<128, 56>; // 1 x i128 vector value
83-
84-
def nxv1i1 : ValueType<1, 57>; // n x 1 x i1 vector value
85-
def nxv2i1 : ValueType<2, 58>; // n x 2 x i1 vector value
86-
def nxv4i1 : ValueType<4, 59>; // n x 4 x i1 vector value
87-
def nxv8i1 : ValueType<8, 60>; // n x 8 x i1 vector value
88-
def nxv16i1 : ValueType<16, 61>; // n x 16 x i1 vector value
89-
def nxv32i1 : ValueType<32, 62>; // n x 32 x i1 vector value
90-
91-
def nxv1i8 : ValueType<8, 63>; // n x 1 x i8 vector value
92-
def nxv2i8 : ValueType<16, 64>; // n x 2 x i8 vector value
93-
def nxv4i8 : ValueType<32, 65>; // n x 4 x i8 vector value
94-
def nxv8i8 : ValueType<64, 66>; // n x 8 x i8 vector value
95-
def nxv16i8 : ValueType<128, 67>; // n x 16 x i8 vector value
96-
def nxv32i8 : ValueType<256, 68>; // n x 32 x i8 vector value
97-
98-
def nxv1i16 : ValueType<16, 69>; // n x 1 x i16 vector value
99-
def nxv2i16 : ValueType<32, 70>; // n x 2 x i16 vector value
100-
def nxv4i16 : ValueType<64, 71>; // n x 4 x i16 vector value
101-
def nxv8i16 : ValueType<128, 72>; // n x 8 x i16 vector value
102-
def nxv16i16: ValueType<256, 73>; // n x 16 x i16 vector value
103-
def nxv32i16: ValueType<512, 74>; // n x 32 x i16 vector value
104-
105-
def nxv1i32 : ValueType<32, 75>; // n x 1 x i32 vector value
106-
def nxv2i32 : ValueType<64, 76>; // n x 2 x i32 vector value
107-
def nxv4i32 : ValueType<128, 77>; // n x 4 x i32 vector value
108-
def nxv8i32 : ValueType<256, 78>; // n x 8 x i32 vector value
109-
def nxv16i32: ValueType<512, 79>; // n x 16 x i32 vector value
110-
def nxv32i32: ValueType<1024,80>; // n x 32 x i32 vector value
111-
112-
def nxv1i64 : ValueType<64, 81>; // n x 1 x i64 vector value
113-
def nxv2i64 : ValueType<128, 82>; // n x 2 x i64 vector value
114-
def nxv4i64 : ValueType<256, 83>; // n x 4 x i64 vector value
115-
def nxv8i64 : ValueType<512, 84>; // n x 8 x i64 vector value
116-
def nxv16i64: ValueType<1024,85>; // n x 16 x i64 vector value
117-
def nxv32i64: ValueType<2048,86>; // n x 32 x i64 vector value
118-
119-
def v2f16 : ValueType<32 , 87>; // 2 x f16 vector value
120-
def v4f16 : ValueType<64 , 88>; // 4 x f16 vector value
121-
def v8f16 : ValueType<128, 89>; // 8 x f16 vector value
122-
def v1f32 : ValueType<32 , 90>; // 1 x f32 vector value
123-
def v2f32 : ValueType<64 , 91>; // 2 x f32 vector value
124-
def v3f32 : ValueType<96 , 92>; // 3 x f32 vector value
125-
def v4f32 : ValueType<128, 93>; // 4 x f32 vector value
126-
def v5f32 : ValueType<160, 94>; // 5 x f32 vector value
127-
def v8f32 : ValueType<256, 95>; // 8 x f32 vector value
128-
def v16f32 : ValueType<512, 96>; // 16 x f32 vector value
129-
def v1f64 : ValueType<64, 97>; // 1 x f64 vector value
130-
def v2f64 : ValueType<128, 98>; // 2 x f64 vector value
131-
def v4f64 : ValueType<256, 99>; // 4 x f64 vector value
132-
def v8f64 : ValueType<512,100>; // 8 x f64 vector value
133-
134-
def nxv2f16 : ValueType<32 , 101>; // n x 2 x f16 vector value
135-
def nxv4f16 : ValueType<64 , 102>; // n x 4 x f16 vector value
136-
def nxv8f16 : ValueType<128, 103>; // n x 8 x f16 vector value
137-
def nxv1f32 : ValueType<32 , 104>; // n x 1 x f32 vector value
138-
def nxv2f32 : ValueType<64 , 105>; // n x 2 x f32 vector value
139-
def nxv4f32 : ValueType<128, 106>; // n x 4 x f32 vector value
140-
def nxv8f32 : ValueType<256, 107>; // n x 8 x f32 vector value
141-
def nxv16f32 : ValueType<512, 108>; // n x 16 x f32 vector value
142-
def nxv1f64 : ValueType<64, 109>; // n x 1 x f64 vector value
143-
def nxv2f64 : ValueType<128, 110>; // n x 2 x f64 vector value
144-
def nxv4f64 : ValueType<256, 111>; // n x 4 x f64 vector value
145-
def nxv8f64 : ValueType<512, 112>; // n x 8 x f64 vector value
146-
147-
def x86mmx : ValueType<64 , 113>; // X86 MMX value
148-
def FlagVT : ValueType<0 , 114>; // Pre-RA sched glue
149-
def isVoid : ValueType<0 , 115>; // Produces no value
150-
def untyped: ValueType<8 , 116>; // Produces an untyped value
151-
def ExceptRef: ValueType<0, 117>; // WebAssembly's except_ref type
65+
def v1i32 : ValueType<32 , 41>; // 1 x i32 vector value
66+
def v2i32 : ValueType<64 , 42>; // 2 x i32 vector value
67+
def v3i32 : ValueType<96 , 43>; // 3 x i32 vector value
68+
def v4i32 : ValueType<128, 44>; // 4 x i32 vector value
69+
def v5i32 : ValueType<160, 45>; // 5 x i32 vector value
70+
def v8i32 : ValueType<256, 46>; // 8 x i32 vector value
71+
def v16i32 : ValueType<512, 47>; // 16 x i32 vector value
72+
def v32i32 : ValueType<1024,48>; // 32 x i32 vector value
73+
def v64i32 : ValueType<2048,49>; // 64 x i32 vector value
74+
def v128i32 : ValueType<4096,50>; // 128 x i32 vector value
75+
def v256i32 : ValueType<8182,51>; // 256 x i32 vector value
76+
def v512i32 : ValueType<16384,52>; // 512 x i32 vector value
77+
def v1024i32 : ValueType<32768,53>; // 1024 x i32 vector value
78+
def v2048i32 : ValueType<65536,54>; // 2048 x i32 vector value
79+
80+
def v1i64 : ValueType<64 , 55>; // 1 x i64 vector value
81+
def v2i64 : ValueType<128, 56>; // 2 x i64 vector value
82+
def v4i64 : ValueType<256, 57>; // 4 x i64 vector value
83+
def v8i64 : ValueType<512, 58>; // 8 x i64 vector value
84+
def v16i64 : ValueType<1024,59>; // 16 x i64 vector value
85+
def v32i64 : ValueType<2048,60>; // 32 x i64 vector value
86+
87+
def v1i128 : ValueType<128, 61>; // 1 x i128 vector value
88+
89+
def nxv1i1 : ValueType<1, 62>; // n x 1 x i1 vector value
90+
def nxv2i1 : ValueType<2, 63>; // n x 2 x i1 vector value
91+
def nxv4i1 : ValueType<4, 64>; // n x 4 x i1 vector value
92+
def nxv8i1 : ValueType<8, 65>; // n x 8 x i1 vector value
93+
def nxv16i1 : ValueType<16, 66>; // n x 16 x i1 vector value
94+
def nxv32i1 : ValueType<32, 67>; // n x 32 x i1 vector value
95+
96+
def nxv1i8 : ValueType<8, 68>; // n x 1 x i8 vector value
97+
def nxv2i8 : ValueType<16, 69>; // n x 2 x i8 vector value
98+
def nxv4i8 : ValueType<32, 70>; // n x 4 x i8 vector value
99+
def nxv8i8 : ValueType<64, 71>; // n x 8 x i8 vector value
100+
def nxv16i8 : ValueType<128, 72>; // n x 16 x i8 vector value
101+
def nxv32i8 : ValueType<256, 73>; // n x 32 x i8 vector value
102+
103+
def nxv1i16 : ValueType<16, 74>; // n x 1 x i16 vector value
104+
def nxv2i16 : ValueType<32, 75>; // n x 2 x i16 vector value
105+
def nxv4i16 : ValueType<64, 76>; // n x 4 x i16 vector value
106+
def nxv8i16 : ValueType<128, 77>; // n x 8 x i16 vector value
107+
def nxv16i16: ValueType<256, 78>; // n x 16 x i16 vector value
108+
def nxv32i16: ValueType<512, 79>; // n x 32 x i16 vector value
109+
110+
def nxv1i32 : ValueType<32, 80>; // n x 1 x i32 vector value
111+
def nxv2i32 : ValueType<64, 81>; // n x 2 x i32 vector value
112+
def nxv4i32 : ValueType<128, 82>; // n x 4 x i32 vector value
113+
def nxv8i32 : ValueType<256, 83>; // n x 8 x i32 vector value
114+
def nxv16i32: ValueType<512, 84>; // n x 16 x i32 vector value
115+
def nxv32i32: ValueType<1024,85>; // n x 32 x i32 vector value
116+
117+
def nxv1i64 : ValueType<64, 86>; // n x 1 x i64 vector value
118+
def nxv2i64 : ValueType<128, 87>; // n x 2 x i64 vector value
119+
def nxv4i64 : ValueType<256, 88>; // n x 4 x i64 vector value
120+
def nxv8i64 : ValueType<512, 89>; // n x 8 x i64 vector value
121+
def nxv16i64: ValueType<1024,90>; // n x 16 x i64 vector value
122+
def nxv32i64: ValueType<2048,91>; // n x 32 x i64 vector value
123+
124+
def v2f16 : ValueType<32 , 92>; // 2 x f16 vector value
125+
def v4f16 : ValueType<64 , 93>; // 4 x f16 vector value
126+
def v8f16 : ValueType<128, 94>; // 8 x f16 vector value
127+
def v1f32 : ValueType<32 , 95>; // 1 x f32 vector value
128+
def v2f32 : ValueType<64 , 96>; // 2 x f32 vector value
129+
def v3f32 : ValueType<96 , 97>; // 3 x f32 vector value
130+
def v4f32 : ValueType<128, 98>; // 4 x f32 vector value
131+
def v5f32 : ValueType<160, 99>; // 5 x f32 vector value
132+
def v8f32 : ValueType<256, 100>; // 8 x f32 vector value
133+
def v16f32 : ValueType<512, 101>; // 16 x f32 vector value
134+
def v32f32 : ValueType<1024, 102>; // 32 x f32 vector value
135+
def v64f32 : ValueType<2048, 103>; // 64 x f32 vector value
136+
def v128f32 : ValueType<4096, 104>; // 128 x f32 vector value
137+
def v256f32 : ValueType<8182, 105>; // 256 x f32 vector value
138+
def v512f32 : ValueType<16384, 106>; // 512 x f32 vector value
139+
def v1024f32 : ValueType<32768, 107>; // 1024 x f32 vector value
140+
def v2048f32 : ValueType<65536, 108>; // 2048 x f32 vector value
141+
def v1f64 : ValueType<64, 109>; // 1 x f64 vector value
142+
def v2f64 : ValueType<128, 110>; // 2 x f64 vector value
143+
def v4f64 : ValueType<256, 111>; // 4 x f64 vector value
144+
def v8f64 : ValueType<512, 112>; // 8 x f64 vector value
145+
146+
def nxv2f16 : ValueType<32 , 113>; // n x 2 x f16 vector value
147+
def nxv4f16 : ValueType<64 , 114>; // n x 4 x f16 vector value
148+
def nxv8f16 : ValueType<128, 115>; // n x 8 x f16 vector value
149+
def nxv1f32 : ValueType<32 , 116>; // n x 1 x f32 vector value
150+
def nxv2f32 : ValueType<64 , 117>; // n x 2 x f32 vector value
151+
def nxv4f32 : ValueType<128, 118>; // n x 4 x f32 vector value
152+
def nxv8f32 : ValueType<256, 119>; // n x 8 x f32 vector value
153+
def nxv16f32 : ValueType<512, 120>; // n x 16 x f32 vector value
154+
def nxv1f64 : ValueType<64, 121>; // n x 1 x f64 vector value
155+
def nxv2f64 : ValueType<128, 122>; // n x 2 x f64 vector value
156+
def nxv4f64 : ValueType<256, 123>; // n x 4 x f64 vector value
157+
def nxv8f64 : ValueType<512, 124>; // n x 8 x f64 vector value
158+
159+
def x86mmx : ValueType<64 , 125>; // X86 MMX value
160+
def FlagVT : ValueType<0 , 126>; // Pre-RA sched glue
161+
def isVoid : ValueType<0 , 127>; // Produces no value
162+
def untyped: ValueType<8 , 128>; // Produces an untyped value
163+
def ExceptRef: ValueType<0, 129>; // WebAssembly's except_ref type
152164
def token : ValueType<0 , 248>; // TokenTy
153165
def MetadataVT: ValueType<0, 249>; // Metadata
154166

0 commit comments

Comments
 (0)