llvm.org GIT mirror llvm / cc239d2
[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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365274 91177308-0d34-0410-b5e6-96231b3b80d8 David Majnemer a month ago
5 changed file(s) with 297 addition(s) and 189 deletion(s). Raw diff Collapse all Expand all
6161 def v64i16 : ValueType<1024,39>; // 64 x i16 vector value
6262 def v128i16: ValueType<2048,40>; //128 x i16 vector value
6363
64 def v1i32 : ValueType<32 , 41>; // 1 x i32 vector value
65 def v2i32 : ValueType<64 , 42>; // 2 x i32 vector value
66 def v3i32 : ValueType<96 , 43>; // 3 x i32 vector value
67 def v4i32 : ValueType<128, 44>; // 4 x i32 vector value
68 def v5i32 : ValueType<160, 45>; // 5 x i32 vector value
69 def v8i32 : ValueType<256, 46>; // 8 x i32 vector value
70 def v16i32 : ValueType<512, 47>; // 16 x i32 vector value
71 def v32i32 : ValueType<1024,48>; // 32 x i32 vector value
72 def v64i32 : ValueType<2048,49>; // 64 x i32 vector value
64 def v1i32 : ValueType<32 , 41>; // 1 x i32 vector value
65 def v2i32 : ValueType<64 , 42>; // 2 x i32 vector value
66 def v3i32 : ValueType<96 , 43>; // 3 x i32 vector value
67 def v4i32 : ValueType<128, 44>; // 4 x i32 vector value
68 def v5i32 : ValueType<160, 45>; // 5 x i32 vector value
69 def v8i32 : ValueType<256, 46>; // 8 x i32 vector value
70 def v16i32 : ValueType<512, 47>; // 16 x i32 vector value
71 def v32i32 : ValueType<1024,48>; // 32 x i32 vector value
72 def v64i32 : ValueType<2048,49>; // 64 x i32 vector value
73 def v128i32 : ValueType<4096,50>; // 128 x i32 vector value
74 def v256i32 : ValueType<8182,51>; // 256 x i32 vector value
75 def v512i32 : ValueType<16384,52>; // 512 x i32 vector value
76 def v1024i32 : ValueType<32768,53>; // 1024 x i32 vector value
77 def v2048i32 : ValueType<65536,54>; // 2048 x i32 vector value
7378
74 def v1i64 : ValueType<64 , 50>; // 1 x i64 vector value
75 def v2i64 : ValueType<128, 51>; // 2 x i64 vector value
76 def v4i64 : ValueType<256, 52>; // 4 x i64 vector value
77 def v8i64 : ValueType<512, 53>; // 8 x i64 vector value
78 def v16i64 : ValueType<1024,54>; // 16 x i64 vector value
79 def v32i64 : ValueType<2048,55>; // 32 x i64 vector value
79 def v1i64 : ValueType<64 , 55>; // 1 x i64 vector value
80 def v2i64 : ValueType<128, 56>; // 2 x i64 vector value
81 def v4i64 : ValueType<256, 57>; // 4 x i64 vector value
82 def v8i64 : ValueType<512, 58>; // 8 x i64 vector value
83 def v16i64 : ValueType<1024,59>; // 16 x i64 vector value
84 def v32i64 : ValueType<2048,60>; // 32 x i64 vector value
8085
81 def v1i128 : ValueType<128, 56>; // 1 x i128 vector value
86 def v1i128 : ValueType<128, 61>; // 1 x i128 vector value
8287
83 def nxv1i1 : ValueType<1, 57>; // n x 1 x i1 vector value
84 def nxv2i1 : ValueType<2, 58>; // n x 2 x i1 vector value
85 def nxv4i1 : ValueType<4, 59>; // n x 4 x i1 vector value
86 def nxv8i1 : ValueType<8, 60>; // n x 8 x i1 vector value
87 def nxv16i1 : ValueType<16, 61>; // n x 16 x i1 vector value
88 def nxv32i1 : ValueType<32, 62>; // n x 32 x i1 vector value
88 def nxv1i1 : ValueType<1, 62>; // n x 1 x i1 vector value
89 def nxv2i1 : ValueType<2, 63>; // n x 2 x i1 vector value
90 def nxv4i1 : ValueType<4, 64>; // n x 4 x i1 vector value
91 def nxv8i1 : ValueType<8, 65>; // n x 8 x i1 vector value
92 def nxv16i1 : ValueType<16, 66>; // n x 16 x i1 vector value
93 def nxv32i1 : ValueType<32, 67>; // n x 32 x i1 vector value
8994
90 def nxv1i8 : ValueType<8, 63>; // n x 1 x i8 vector value
91 def nxv2i8 : ValueType<16, 64>; // n x 2 x i8 vector value
92 def nxv4i8 : ValueType<32, 65>; // n x 4 x i8 vector value
93 def nxv8i8 : ValueType<64, 66>; // n x 8 x i8 vector value
94 def nxv16i8 : ValueType<128, 67>; // n x 16 x i8 vector value
95 def nxv32i8 : ValueType<256, 68>; // n x 32 x i8 vector value
95 def nxv1i8 : ValueType<8, 68>; // n x 1 x i8 vector value
96 def nxv2i8 : ValueType<16, 69>; // n x 2 x i8 vector value
97 def nxv4i8 : ValueType<32, 70>; // n x 4 x i8 vector value
98 def nxv8i8 : ValueType<64, 71>; // n x 8 x i8 vector value
99 def nxv16i8 : ValueType<128, 72>; // n x 16 x i8 vector value
100 def nxv32i8 : ValueType<256, 73>; // n x 32 x i8 vector value
96101
97 def nxv1i16 : ValueType<16, 69>; // n x 1 x i16 vector value
98 def nxv2i16 : ValueType<32, 70>; // n x 2 x i16 vector value
99 def nxv4i16 : ValueType<64, 71>; // n x 4 x i16 vector value
100 def nxv8i16 : ValueType<128, 72>; // n x 8 x i16 vector value
101 def nxv16i16: ValueType<256, 73>; // n x 16 x i16 vector value
102 def nxv32i16: ValueType<512, 74>; // n x 32 x i16 vector value
102 def nxv1i16 : ValueType<16, 74>; // n x 1 x i16 vector value
103 def nxv2i16 : ValueType<32, 75>; // n x 2 x i16 vector value
104 def nxv4i16 : ValueType<64, 76>; // n x 4 x i16 vector value
105 def nxv8i16 : ValueType<128, 77>; // n x 8 x i16 vector value
106 def nxv16i16: ValueType<256, 78>; // n x 16 x i16 vector value
107 def nxv32i16: ValueType<512, 79>; // n x 32 x i16 vector value
103108
104 def nxv1i32 : ValueType<32, 75>; // n x 1 x i32 vector value
105 def nxv2i32 : ValueType<64, 76>; // n x 2 x i32 vector value
106 def nxv4i32 : ValueType<128, 77>; // n x 4 x i32 vector value
107 def nxv8i32 : ValueType<256, 78>; // n x 8 x i32 vector value
108 def nxv16i32: ValueType<512, 79>; // n x 16 x i32 vector value
109 def nxv32i32: ValueType<1024,80>; // n x 32 x i32 vector value
109 def nxv1i32 : ValueType<32, 80>; // n x 1 x i32 vector value
110 def nxv2i32 : ValueType<64, 81>; // n x 2 x i32 vector value
111 def nxv4i32 : ValueType<128, 82>; // n x 4 x i32 vector value
112 def nxv8i32 : ValueType<256, 83>; // n x 8 x i32 vector value
113 def nxv16i32: ValueType<512, 84>; // n x 16 x i32 vector value
114 def nxv32i32: ValueType<1024,85>; // n x 32 x i32 vector value
110115
111 def nxv1i64 : ValueType<64, 81>; // n x 1 x i64 vector value
112 def nxv2i64 : ValueType<128, 82>; // n x 2 x i64 vector value
113 def nxv4i64 : ValueType<256, 83>; // n x 4 x i64 vector value
114 def nxv8i64 : ValueType<512, 84>; // n x 8 x i64 vector value
115 def nxv16i64: ValueType<1024,85>; // n x 16 x i64 vector value
116 def nxv32i64: ValueType<2048,86>; // n x 32 x i64 vector value
116 def nxv1i64 : ValueType<64, 86>; // n x 1 x i64 vector value
117 def nxv2i64 : ValueType<128, 87>; // n x 2 x i64 vector value
118 def nxv4i64 : ValueType<256, 88>; // n x 4 x i64 vector value
119 def nxv8i64 : ValueType<512, 89>; // n x 8 x i64 vector value
120 def nxv16i64: ValueType<1024,90>; // n x 16 x i64 vector value
121 def nxv32i64: ValueType<2048,91>; // n x 32 x i64 vector value
117122
118 def v2f16 : ValueType<32 , 87>; // 2 x f16 vector value
119 def v4f16 : ValueType<64 , 88>; // 4 x f16 vector value
120 def v8f16 : ValueType<128, 89>; // 8 x f16 vector value
121 def v1f32 : ValueType<32 , 90>; // 1 x f32 vector value
122 def v2f32 : ValueType<64 , 91>; // 2 x f32 vector value
123 def v3f32 : ValueType<96 , 92>; // 3 x f32 vector value
124 def v4f32 : ValueType<128, 93>; // 4 x f32 vector value
125 def v5f32 : ValueType<160, 94>; // 5 x f32 vector value
126 def v8f32 : ValueType<256, 95>; // 8 x f32 vector value
127 def v16f32 : ValueType<512, 96>; // 16 x f32 vector value
128 def v1f64 : ValueType<64, 97>; // 1 x f64 vector value
129 def v2f64 : ValueType<128, 98>; // 2 x f64 vector value
130 def v4f64 : ValueType<256, 99>; // 4 x f64 vector value
131 def v8f64 : ValueType<512,100>; // 8 x f64 vector value
123 def v2f16 : ValueType<32 , 92>; // 2 x f16 vector value
124 def v4f16 : ValueType<64 , 93>; // 4 x f16 vector value
125 def v8f16 : ValueType<128, 94>; // 8 x f16 vector value
126 def v1f32 : ValueType<32 , 95>; // 1 x f32 vector value
127 def v2f32 : ValueType<64 , 96>; // 2 x f32 vector value
128 def v3f32 : ValueType<96 , 97>; // 3 x f32 vector value
129 def v4f32 : ValueType<128, 98>; // 4 x f32 vector value
130 def v5f32 : ValueType<160, 99>; // 5 x f32 vector value
131 def v8f32 : ValueType<256, 100>; // 8 x f32 vector value
132 def v16f32 : ValueType<512, 101>; // 16 x f32 vector value
133 def v32f32 : ValueType<1024, 102>; // 32 x f32 vector value
134 def v64f32 : ValueType<2048, 103>; // 64 x f32 vector value
135 def v128f32 : ValueType<4096, 104>; // 128 x f32 vector value
136 def v256f32 : ValueType<8182, 105>; // 256 x f32 vector value
137 def v512f32 : ValueType<16384, 106>; // 512 x f32 vector value
138 def v1024f32 : ValueType<32768, 107>; // 1024 x f32 vector value
139 def v2048f32 : ValueType<65536, 108>; // 2048 x f32 vector value
140 def v1f64 : ValueType<64, 109>; // 1 x f64 vector value
141 def v2f64 : ValueType<128, 110>; // 2 x f64 vector value
142 def v4f64 : ValueType<256, 111>; // 4 x f64 vector value
143 def v8f64 : ValueType<512, 112>; // 8 x f64 vector value
132144
133 def nxv2f16 : ValueType<32 , 101>; // n x 2 x f16 vector value
134 def nxv4f16 : ValueType<64 , 102>; // n x 4 x f16 vector value
135 def nxv8f16 : ValueType<128, 103>; // n x 8 x f16 vector value
136 def nxv1f32 : ValueType<32 , 104>; // n x 1 x f32 vector value
137 def nxv2f32 : ValueType<64 , 105>; // n x 2 x f32 vector value
138 def nxv4f32 : ValueType<128, 106>; // n x 4 x f32 vector value
139 def nxv8f32 : ValueType<256, 107>; // n x 8 x f32 vector value
140 def nxv16f32 : ValueType<512, 108>; // n x 16 x f32 vector value
141 def nxv1f64 : ValueType<64, 109>; // n x 1 x f64 vector value
142 def nxv2f64 : ValueType<128, 110>; // n x 2 x f64 vector value
143 def nxv4f64 : ValueType<256, 111>; // n x 4 x f64 vector value
144 def nxv8f64 : ValueType<512, 112>; // n x 8 x f64 vector value
145 def nxv2f16 : ValueType<32 , 113>; // n x 2 x f16 vector value
146 def nxv4f16 : ValueType<64 , 114>; // n x 4 x f16 vector value
147 def nxv8f16 : ValueType<128, 115>; // n x 8 x f16 vector value
148 def nxv1f32 : ValueType<32 , 116>; // n x 1 x f32 vector value
149 def nxv2f32 : ValueType<64 , 117>; // n x 2 x f32 vector value
150 def nxv4f32 : ValueType<128, 118>; // n x 4 x f32 vector value
151 def nxv8f32 : ValueType<256, 119>; // n x 8 x f32 vector value
152 def nxv16f32 : ValueType<512, 120>; // n x 16 x f32 vector value
153 def nxv1f64 : ValueType<64, 121>; // n x 1 x f64 vector value
154 def nxv2f64 : ValueType<128, 122>; // n x 2 x f64 vector value
155 def nxv4f64 : ValueType<256, 123>; // n x 4 x f64 vector value
156 def nxv8f64 : ValueType<512, 124>; // n x 8 x f64 vector value
145157
146 def x86mmx : ValueType<64 , 113>; // X86 MMX value
147 def FlagVT : ValueType<0 , 114>; // Pre-RA sched glue
148 def isVoid : ValueType<0 , 115>; // Produces no value
149 def untyped: ValueType<8 , 116>; // Produces an untyped value
150 def ExceptRef: ValueType<0, 117>; // WebAssembly's except_ref type
158 def x86mmx : ValueType<64 , 125>; // X86 MMX value
159 def FlagVT : ValueType<0 , 126>; // Pre-RA sched glue
160 def isVoid : ValueType<0 , 127>; // Produces no value
161 def untyped: ValueType<8 , 128>; // Produces an untyped value
162 def ExceptRef: ValueType<0, 129>; // WebAssembly's except_ref type
151163 def token : ValueType<0 , 248>; // TokenTy
152164 def MetadataVT: ValueType<0, 249>; // Metadata
153165
8585 v64i16 = 39, // 64 x i16
8686 v128i16 = 40, //128 x i16
8787
88 v1i32 = 41, // 1 x i32
89 v2i32 = 42, // 2 x i32
90 v3i32 = 43, // 3 x i32
91 v4i32 = 44, // 4 x i32
92 v5i32 = 45, // 5 x i32
93 v8i32 = 46, // 8 x i32
94 v16i32 = 47, // 16 x i32
95 v32i32 = 48, // 32 x i32
96 v64i32 = 49, // 64 x i32
97
98 v1i64 = 50, // 1 x i64
99 v2i64 = 51, // 2 x i64
100 v4i64 = 52, // 4 x i64
101 v8i64 = 53, // 8 x i64
102 v16i64 = 54, // 16 x i64
103 v32i64 = 55, // 32 x i64
104
105 v1i128 = 56, // 1 x i128
88 v1i32 = 41, // 1 x i32
89 v2i32 = 42, // 2 x i32
90 v3i32 = 43, // 3 x i32
91 v4i32 = 44, // 4 x i32
92 v5i32 = 45, // 5 x i32
93 v8i32 = 46, // 8 x i32
94 v16i32 = 47, // 16 x i32
95 v32i32 = 48, // 32 x i32
96 v64i32 = 49, // 64 x i32
97 v128i32 = 50, // 128 x i32
98 v256i32 = 51, // 256 x i32
99 v512i32 = 52, // 512 x i32
100 v1024i32 = 53, // 1024 x i32
101 v2048i32 = 54, // 2048 x i32
102
103 v1i64 = 55, // 1 x i64
104 v2i64 = 56, // 2 x i64
105 v4i64 = 57, // 4 x i64
106 v8i64 = 58, // 8 x i64
107 v16i64 = 59, // 16 x i64
108 v32i64 = 60, // 32 x i64
109
110 v1i128 = 61, // 1 x i128
106111
107112 // Scalable integer types
108 nxv1i1 = 57, // n x 1 x i1
109 nxv2i1 = 58, // n x 2 x i1
110 nxv4i1 = 59, // n x 4 x i1
111 nxv8i1 = 60, // n x 8 x i1
112 nxv16i1 = 61, // n x 16 x i1
113 nxv32i1 = 62, // n x 32 x i1
114
115 nxv1i8 = 63, // n x 1 x i8
116 nxv2i8 = 64, // n x 2 x i8
117 nxv4i8 = 65, // n x 4 x i8
118 nxv8i8 = 66, // n x 8 x i8
119 nxv16i8 = 67, // n x 16 x i8
120 nxv32i8 = 68, // n x 32 x i8
121
122 nxv1i16 = 69, // n x 1 x i16
123 nxv2i16 = 70, // n x 2 x i16
124 nxv4i16 = 71, // n x 4 x i16
125 nxv8i16 = 72, // n x 8 x i16
126 nxv16i16 = 73, // n x 16 x i16
127 nxv32i16 = 74, // n x 32 x i16
128
129 nxv1i32 = 75, // n x 1 x i32
130 nxv2i32 = 76, // n x 2 x i32
131 nxv4i32 = 77, // n x 4 x i32
132 nxv8i32 = 78, // n x 8 x i32
133 nxv16i32 = 79, // n x 16 x i32
134 nxv32i32 = 80, // n x 32 x i32
135
136 nxv1i64 = 81, // n x 1 x i64
137 nxv2i64 = 82, // n x 2 x i64
138 nxv4i64 = 83, // n x 4 x i64
139 nxv8i64 = 84, // n x 8 x i64
140 nxv16i64 = 85, // n x 16 x i64
141 nxv32i64 = 86, // n x 32 x i64
113 nxv1i1 = 62, // n x 1 x i1
114 nxv2i1 = 63, // n x 2 x i1
115 nxv4i1 = 64, // n x 4 x i1
116 nxv8i1 = 65, // n x 8 x i1
117 nxv16i1 = 66, // n x 16 x i1
118 nxv32i1 = 67, // n x 32 x i1
119
120 nxv1i8 = 68, // n x 1 x i8
121 nxv2i8 = 69, // n x 2 x i8
122 nxv4i8 = 70, // n x 4 x i8
123 nxv8i8 = 71, // n x 8 x i8
124 nxv16i8 = 72, // n x 16 x i8
125 nxv32i8 = 73, // n x 32 x i8
126
127 nxv1i16 = 74, // n x 1 x i16
128 nxv2i16 = 75, // n x 2 x i16
129 nxv4i16 = 76, // n x 4 x i16
130 nxv8i16 = 77, // n x 8 x i16
131 nxv16i16 = 78, // n x 16 x i16
132 nxv32i16 = 79, // n x 32 x i16
133
134 nxv1i32 = 80, // n x 1 x i32
135 nxv2i32 = 81, // n x 2 x i32
136 nxv4i32 = 82, // n x 4 x i32
137 nxv8i32 = 83, // n x 8 x i32
138 nxv16i32 = 84, // n x 16 x i32
139 nxv32i32 = 85, // n x 32 x i32
140
141 nxv1i64 = 86, // n x 1 x i64
142 nxv2i64 = 87, // n x 2 x i64
143 nxv4i64 = 88, // n x 4 x i64
144 nxv8i64 = 89, // n x 8 x i64
145 nxv16i64 = 90, // n x 16 x i64
146 nxv32i64 = 91, // n x 32 x i64
142147
143148 FIRST_INTEGER_VECTOR_VALUETYPE = v1i1,
144149 LAST_INTEGER_VECTOR_VALUETYPE = nxv32i64,
146151 FIRST_INTEGER_SCALABLE_VALUETYPE = nxv1i1,
147152 LAST_INTEGER_SCALABLE_VALUETYPE = nxv32i64,
148153
149 v2f16 = 87, // 2 x f16
150 v4f16 = 88, // 4 x f16
151 v8f16 = 89, // 8 x f16
152 v1f32 = 90, // 1 x f32
153 v2f32 = 91, // 2 x f32
154 v3f32 = 92, // 3 x f32
155 v4f32 = 93, // 4 x f32
156 v5f32 = 94, // 5 x f32
157 v8f32 = 95, // 8 x f32
158 v16f32 = 96, // 16 x f32
159 v1f64 = 97, // 1 x f64
160 v2f64 = 98, // 2 x f64
161 v4f64 = 99, // 4 x f64
162 v8f64 = 100, // 8 x f64
163
164 nxv2f16 = 101, // n x 2 x f16
165 nxv4f16 = 102, // n x 4 x f16
166 nxv8f16 = 103, // n x 8 x f16
167 nxv1f32 = 104, // n x 1 x f32
168 nxv2f32 = 105, // n x 2 x f32
169 nxv4f32 = 106, // n x 4 x f32
170 nxv8f32 = 107, // n x 8 x f32
171 nxv16f32 = 108, // n x 16 x f32
172 nxv1f64 = 109, // n x 1 x f64
173 nxv2f64 = 110, // n x 2 x f64
174 nxv4f64 = 111, // n x 4 x f64
175 nxv8f64 = 112, // n x 8 x f64
154 v2f16 = 92, // 2 x f16
155 v4f16 = 93, // 4 x f16
156 v8f16 = 94, // 8 x f16
157 v1f32 = 95, // 1 x f32
158 v2f32 = 96, // 2 x f32
159 v3f32 = 97, // 3 x f32
160 v4f32 = 98, // 4 x f32
161 v5f32 = 99, // 5 x f32
162 v8f32 = 100, // 8 x f32
163 v16f32 = 101, // 16 x f32
164 v32f32 = 102, // 32 x f32
165 v64f32 = 103, // 64 x f32
166 v128f32 = 104, // 128 x f32
167 v256f32 = 105, // 256 x f32
168 v512f32 = 106, // 512 x f32
169 v1024f32 = 107, // 1024 x f32
170 v2048f32 = 108, // 2048 x f32
171 v1f64 = 109, // 1 x f64
172 v2f64 = 110, // 2 x f64
173 v4f64 = 111, // 4 x f64
174 v8f64 = 112, // 8 x f64
175
176 nxv2f16 = 113, // n x 2 x f16
177 nxv4f16 = 114, // n x 4 x f16
178 nxv8f16 = 115, // n x 8 x f16
179 nxv1f32 = 116, // n x 1 x f32
180 nxv2f32 = 117, // n x 2 x f32
181 nxv4f32 = 118, // n x 4 x f32
182 nxv8f32 = 119, // n x 8 x f32
183 nxv16f32 = 120, // n x 16 x f32
184 nxv1f64 = 121, // n x 1 x f64
185 nxv2f64 = 122, // n x 2 x f64
186 nxv4f64 = 123, // n x 4 x f64
187 nxv8f64 = 124, // n x 8 x f64
176188
177189 FIRST_FP_VECTOR_VALUETYPE = v2f16,
178190 LAST_FP_VECTOR_VALUETYPE = nxv8f64,
183195 FIRST_VECTOR_VALUETYPE = v1i1,
184196 LAST_VECTOR_VALUETYPE = nxv8f64,
185197
186 x86mmx = 113, // This is an X86 MMX value
187
188 Glue = 114, // This glues nodes together during pre-RA sched
189
190 isVoid = 115, // This has no value
191
192 Untyped = 116, // This value takes a register, but has
198 x86mmx = 125, // This is an X86 MMX value
199
200 Glue = 126, // This glues nodes together during pre-RA sched
201
202 isVoid = 127, // This has no value
203
204 Untyped = 128, // This value takes a register, but has
193205 // unspecified type. The register class
194206 // will be determined by the opcode.
195207
196 ExceptRef = 117, // WebAssembly's except_ref type
208 ExceptRef = 129, // WebAssembly's except_ref type
197209
198210 FIRST_VALUETYPE = 1, // This is always the beginning of the list.
199 LAST_VALUETYPE = 118, // This always remains at the end of the list.
211 LAST_VALUETYPE = 130, // This always remains at the end of the list.
200212
201213 // This is the current maximum for LAST_VALUETYPE.
202214 // MVT::MAX_ALLOWED_VALUETYPE is used for asserts and to size bit vectors
203215 // This value must be a multiple of 32.
204 MAX_ALLOWED_VALUETYPE = 128,
216 MAX_ALLOWED_VALUETYPE = 160,
205217
206218 // A value of type llvm::TokenTy
207219 token = 248,
473485 case v16i32:
474486 case v32i32:
475487 case v64i32:
488 case v128i32:
489 case v256i32:
490 case v512i32:
491 case v1024i32:
492 case v2048i32:
476493 case nxv1i32:
477494 case nxv2i32:
478495 case nxv4i32:
505522 case v5f32:
506523 case v8f32:
507524 case v16f32:
525 case v32f32:
526 case v64f32:
527 case v128f32:
528 case v256f32:
529 case v512f32:
530 case v1024f32:
531 case v2048f32:
508532 case nxv1f32:
509533 case nxv2f32:
510534 case nxv4f32:
525549 switch (SimpleTy) {
526550 default:
527551 llvm_unreachable("Not a vector MVT!");
528 case v1024i1: return 1024;
529 case v512i1: return 512;
530 case v256i8: return 256;
552 case v2048i32:
553 case v2048f32: return 2048;
554 case v1024i1:
555 case v1024i32:
556 case v1024f32: return 1024;
557 case v512i1:
558 case v512i32:
559 case v512f32: return 512;
560 case v256i8:
561 case v256i32:
562 case v256f32: return 256;
531563 case v128i1:
532564 case v128i8:
533 case v128i16: return 128;
565 case v128i16:
566 case v128i32:
567 case v128f32: return 128;
534568 case v64i1:
535569 case v64i8:
536570 case v64i16:
537 case v64i32: return 64;
571 case v64i32:
572 case v64f32: return 64;
538573 case v32i1:
539574 case v32i8:
540575 case v32i16:
541576 case v32i32:
542577 case v32i64:
578 case v32f32:
543579 case nxv32i1:
544580 case nxv32i8:
545581 case nxv32i16:
755791 case v64i16:
756792 case v32i32:
757793 case v16i64:
794 case v32f32:
758795 case nxv32i32:
759796 case nxv16i64: return 1024;
760797 case v256i8:
761798 case v128i16:
762799 case v64i32:
763800 case v32i64:
801 case v64f32:
764802 case nxv32i64: return 2048;
803 case v128i32:
804 case v128f32: return 4096;
805 case v256i32:
806 case v256f32: return 8192;
807 case v512i32:
808 case v512f32: return 16384;
809 case v1024i32:
810 case v1024f32: return 32768;
811 case v2048i32:
812 case v2048f32: return 65536;
765813 case ExceptRef: return 0; // opaque type
766814 }
767815 }
876924 if (NumElements == 128) return MVT::v128i16;
877925 break;
878926 case MVT::i32:
879 if (NumElements == 1) return MVT::v1i32;
880 if (NumElements == 2) return MVT::v2i32;
881 if (NumElements == 3) return MVT::v3i32;
882 if (NumElements == 4) return MVT::v4i32;
883 if (NumElements == 5) return MVT::v5i32;
884 if (NumElements == 8) return MVT::v8i32;
885 if (NumElements == 16) return MVT::v16i32;
886 if (NumElements == 32) return MVT::v32i32;
887 if (NumElements == 64) return MVT::v64i32;
927 if (NumElements == 1) return MVT::v1i32;
928 if (NumElements == 2) return MVT::v2i32;
929 if (NumElements == 3) return MVT::v3i32;
930 if (NumElements == 4) return MVT::v4i32;
931 if (NumElements == 5) return MVT::v5i32;
932 if (NumElements == 8) return MVT::v8i32;
933 if (NumElements == 16) return MVT::v16i32;
934 if (NumElements == 32) return MVT::v32i32;
935 if (NumElements == 64) return MVT::v64i32;
936 if (NumElements == 128) return MVT::v128i32;
937 if (NumElements == 256) return MVT::v256i32;
938 if (NumElements == 512) return MVT::v512i32;
939 if (NumElements == 1024) return MVT::v1024i32;
940 if (NumElements == 2048) return MVT::v2048i32;
888941 break;
889942 case MVT::i64:
890943 if (NumElements == 1) return MVT::v1i64;
903956 if (NumElements == 8) return MVT::v8f16;
904957 break;
905958 case MVT::f32:
906 if (NumElements == 1) return MVT::v1f32;
907 if (NumElements == 2) return MVT::v2f32;
908 if (NumElements == 3) return MVT::v3f32;
909 if (NumElements == 4) return MVT::v4f32;
910 if (NumElements == 5) return MVT::v5f32;
911 if (NumElements == 8) return MVT::v8f32;
912 if (NumElements == 16) return MVT::v16f32;
959 if (NumElements == 1) return MVT::v1f32;
960 if (NumElements == 2) return MVT::v2f32;
961 if (NumElements == 3) return MVT::v3f32;
962 if (NumElements == 4) return MVT::v4f32;
963 if (NumElements == 5) return MVT::v5f32;
964 if (NumElements == 8) return MVT::v8f32;
965 if (NumElements == 16) return MVT::v16f32;
966 if (NumElements == 32) return MVT::v32f32;
967 if (NumElements == 64) return MVT::v64f32;
968 if (NumElements == 128) return MVT::v128f32;
969 if (NumElements == 256) return MVT::v256f32;
970 if (NumElements == 512) return MVT::v512f32;
971 if (NumElements == 1024) return MVT::v1024f32;
972 if (NumElements == 2048) return MVT::v2048f32;
913973 break;
914974 case MVT::f64:
915975 if (NumElements == 1) return MVT::v1f64;
171171 case MVT::v16i32: return "v16i32";
172172 case MVT::v32i32: return "v32i32";
173173 case MVT::v64i32: return "v64i32";
174 case MVT::v128i32: return "v128i32";
175 case MVT::v256i32: return "v256i32";
176 case MVT::v512i32: return "v512i32";
177 case MVT::v1024i32:return "v1024i32";
178 case MVT::v2048i32:return "v2048i32";
174179 case MVT::v1i64: return "v1i64";
175180 case MVT::v2i64: return "v2i64";
176181 case MVT::v4i64: return "v4i64";
188193 case MVT::v5f32: return "v5f32";
189194 case MVT::v8f32: return "v8f32";
190195 case MVT::v16f32: return "v16f32";
196 case MVT::v32f32: return "v32f32";
197 case MVT::v64f32: return "v64f32";
198 case MVT::v128f32: return "v128f32";
199 case MVT::v256f32: return "v256f32";
200 case MVT::v512f32: return "v512f32";
201 case MVT::v1024f32:return "v1024f32";
202 case MVT::v2048f32:return "v2048f32";
191203 case MVT::v1f64: return "v1f64";
192204 case MVT::v2f64: return "v2f64";
193205 case MVT::v4f64: return "v4f64";
256268 case MVT::v16i32: return VectorType::get(Type::getInt32Ty(Context), 16);
257269 case MVT::v32i32: return VectorType::get(Type::getInt32Ty(Context), 32);
258270 case MVT::v64i32: return VectorType::get(Type::getInt32Ty(Context), 64);
271 case MVT::v128i32: return VectorType::get(Type::getInt32Ty(Context), 128);
272 case MVT::v256i32: return VectorType::get(Type::getInt32Ty(Context), 256);
273 case MVT::v512i32: return VectorType::get(Type::getInt32Ty(Context), 512);
274 case MVT::v1024i32:return VectorType::get(Type::getInt32Ty(Context), 1024);
275 case MVT::v2048i32:return VectorType::get(Type::getInt32Ty(Context), 2048);
259276 case MVT::v1i64: return VectorType::get(Type::getInt64Ty(Context), 1);
260277 case MVT::v2i64: return VectorType::get(Type::getInt64Ty(Context), 2);
261278 case MVT::v4i64: return VectorType::get(Type::getInt64Ty(Context), 4);
272289 case MVT::v4f32: return VectorType::get(Type::getFloatTy(Context), 4);
273290 case MVT::v5f32: return VectorType::get(Type::getFloatTy(Context), 5);
274291 case MVT::v8f32: return VectorType::get(Type::getFloatTy(Context), 8);
275 case MVT::v16f32: return VectorType::get(Type::getFloatTy(Context), 16);
292 case MVT::v16f32: return VectorType::get(Type::getFloatTy(Context), 16);
293 case MVT::v32f32: return VectorType::get(Type::getFloatTy(Context), 32);
294 case MVT::v64f32: return VectorType::get(Type::getFloatTy(Context), 64);
295 case MVT::v128f32: return VectorType::get(Type::getFloatTy(Context), 128);
296 case MVT::v256f32: return VectorType::get(Type::getFloatTy(Context), 256);
297 case MVT::v512f32: return VectorType::get(Type::getFloatTy(Context), 512);
298 case MVT::v1024f32:return VectorType::get(Type::getFloatTy(Context), 1024);
299 case MVT::v2048f32:return VectorType::get(Type::getFloatTy(Context), 2048);
276300 case MVT::v1f64: return VectorType::get(Type::getDoubleTy(Context), 1);
277301 case MVT::v2f64: return VectorType::get(Type::getDoubleTy(Context), 2);
278302 case MVT::v4f64: return VectorType::get(Type::getDoubleTy(Context), 4);
2424 }
2525
2626 // isVoid needs to match the definition in ValueTypes.td
27 def isVoid : ValueType<0, 115>; // Produces no value
27 def isVoid : ValueType<0, 127>; // Produces no value
2828 def llvm_vararg_ty : LLVMType; // this means vararg here
2929
3030 // CHECK: /* 0 */ 0, 29, 0,
112112 case MVT::v16i32: return "MVT::v16i32";
113113 case MVT::v32i32: return "MVT::v32i32";
114114 case MVT::v64i32: return "MVT::v64i32";
115 case MVT::v128i32: return "MVT::v128i32";
116 case MVT::v256i32: return "MVT::v256i32";
117 case MVT::v512i32: return "MVT::v512i32";
118 case MVT::v1024i32: return "MVT::v1024i32";
119 case MVT::v2048i32: return "MVT::v2048i32";
115120 case MVT::v1i64: return "MVT::v1i64";
116121 case MVT::v2i64: return "MVT::v2i64";
117122 case MVT::v4i64: return "MVT::v4i64";
129134 case MVT::v5f32: return "MVT::v5f32";
130135 case MVT::v8f32: return "MVT::v8f32";
131136 case MVT::v16f32: return "MVT::v16f32";
137 case MVT::v32f32: return "MVT::v32f32";
138 case MVT::v64f32: return "MVT::v64f32";
139 case MVT::v128f32: return "MVT::v128f32";
140 case MVT::v256f32: return "MVT::v256f32";
141 case MVT::v512f32: return "MVT::v512f32";
142 case MVT::v1024f32: return "MVT::v1024f32";
143 case MVT::v2048f32: return "MVT::v2048f32";
132144 case MVT::v1f64: return "MVT::v1f64";
133145 case MVT::v2f64: return "MVT::v2f64";
134146 case MVT::v4f64: return "MVT::v4f64";