@@ -257,13 +257,13 @@ class SegRegClass<LMULInfo m, int nf> {
257257// Vector register and vector group type information.
258258//===----------------------------------------------------------------------===//
259259
260- class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
260+ class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, LMULInfo M,
261261 ValueType Scal = XLenVT, RegisterClass ScalarReg = GPR> {
262262 ValueType Vector = Vec;
263263 ValueType Mask = Mas;
264264 int SEW = Sew;
265265 int Log2SEW = !logtwo(Sew);
266- VReg RegClass = Reg ;
266+ VReg RegClass = M.vrclass ;
267267 LMULInfo LMul = M;
268268 ValueType Scalar = Scal;
269269 RegisterClass ScalarRegClass = ScalarReg;
@@ -279,100 +279,100 @@ class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
279279}
280280
281281class GroupVTypeInfo<ValueType Vec, ValueType VecM1, ValueType Mas, int Sew,
282- VReg Reg, LMULInfo M, ValueType Scal = XLenVT,
282+ LMULInfo M, ValueType Scal = XLenVT,
283283 RegisterClass ScalarReg = GPR>
284- : VTypeInfo<Vec, Mas, Sew, Reg, M, Scal, ScalarReg> {
284+ : VTypeInfo<Vec, Mas, Sew, M, Scal, ScalarReg> {
285285 ValueType VectorM1 = VecM1;
286286}
287287
288288defset list<VTypeInfo> AllVectors = {
289289 defset list<VTypeInfo> AllIntegerVectors = {
290290 defset list<VTypeInfo> NoGroupIntegerVectors = {
291291 defset list<VTypeInfo> FractionalGroupIntegerVectors = {
292- def VI8MF8: VTypeInfo<vint8mf8_t, vbool64_t, 8, VR, V_MF8>;
293- def VI8MF4: VTypeInfo<vint8mf4_t, vbool32_t, 8, VR, V_MF4>;
294- def VI8MF2: VTypeInfo<vint8mf2_t, vbool16_t, 8, VR, V_MF2>;
295- def VI16MF4: VTypeInfo<vint16mf4_t, vbool64_t, 16, VR, V_MF4>;
296- def VI16MF2: VTypeInfo<vint16mf2_t, vbool32_t, 16, VR, V_MF2>;
297- def VI32MF2: VTypeInfo<vint32mf2_t, vbool64_t, 32, VR, V_MF2>;
292+ def VI8MF8: VTypeInfo<vint8mf8_t, vbool64_t, 8, V_MF8>;
293+ def VI8MF4: VTypeInfo<vint8mf4_t, vbool32_t, 8, V_MF4>;
294+ def VI8MF2: VTypeInfo<vint8mf2_t, vbool16_t, 8, V_MF2>;
295+ def VI16MF4: VTypeInfo<vint16mf4_t, vbool64_t, 16, V_MF4>;
296+ def VI16MF2: VTypeInfo<vint16mf2_t, vbool32_t, 16, V_MF2>;
297+ def VI32MF2: VTypeInfo<vint32mf2_t, vbool64_t, 32, V_MF2>;
298298 }
299- def VI8M1: VTypeInfo<vint8m1_t, vbool8_t, 8, VR , V_M1>;
300- def VI16M1: VTypeInfo<vint16m1_t, vbool16_t, 16, VR , V_M1>;
301- def VI32M1: VTypeInfo<vint32m1_t, vbool32_t, 32, VR , V_M1>;
302- def VI64M1: VTypeInfo<vint64m1_t, vbool64_t, 64, VR , V_M1>;
299+ def VI8M1: VTypeInfo<vint8m1_t, vbool8_t, 8, V_M1>;
300+ def VI16M1: VTypeInfo<vint16m1_t, vbool16_t, 16, V_M1>;
301+ def VI32M1: VTypeInfo<vint32m1_t, vbool32_t, 32, V_M1>;
302+ def VI64M1: VTypeInfo<vint64m1_t, vbool64_t, 64, V_M1>;
303303 }
304304 defset list<GroupVTypeInfo> GroupIntegerVectors = {
305- def VI8M2: GroupVTypeInfo<vint8m2_t, vint8m1_t, vbool4_t, 8, VRM2, V_M2>;
306- def VI8M4: GroupVTypeInfo<vint8m4_t, vint8m1_t, vbool2_t, 8, VRM4, V_M4>;
307- def VI8M8: GroupVTypeInfo<vint8m8_t, vint8m1_t, vbool1_t, 8, VRM8, V_M8>;
305+ def VI8M2: GroupVTypeInfo<vint8m2_t, vint8m1_t, vbool4_t, 8, V_M2>;
306+ def VI8M4: GroupVTypeInfo<vint8m4_t, vint8m1_t, vbool2_t, 8, V_M4>;
307+ def VI8M8: GroupVTypeInfo<vint8m8_t, vint8m1_t, vbool1_t, 8, V_M8>;
308308
309- def VI16M2: GroupVTypeInfo<vint16m2_t,vint16m1_t,vbool8_t, 16,VRM2 , V_M2>;
310- def VI16M4: GroupVTypeInfo<vint16m4_t,vint16m1_t,vbool4_t, 16,VRM4 , V_M4>;
311- def VI16M8: GroupVTypeInfo<vint16m8_t,vint16m1_t,vbool2_t, 16,VRM8 , V_M8>;
309+ def VI16M2: GroupVTypeInfo<vint16m2_t, vint16m1_t, vbool8_t, 16, V_M2>;
310+ def VI16M4: GroupVTypeInfo<vint16m4_t, vint16m1_t, vbool4_t, 16, V_M4>;
311+ def VI16M8: GroupVTypeInfo<vint16m8_t, vint16m1_t, vbool2_t, 16, V_M8>;
312312
313- def VI32M2: GroupVTypeInfo<vint32m2_t,vint32m1_t,vbool16_t,32,VRM2 , V_M2>;
314- def VI32M4: GroupVTypeInfo<vint32m4_t,vint32m1_t,vbool8_t, 32,VRM4 , V_M4>;
315- def VI32M8: GroupVTypeInfo<vint32m8_t,vint32m1_t,vbool4_t, 32,VRM8 , V_M8>;
313+ def VI32M2: GroupVTypeInfo<vint32m2_t, vint32m1_t, vbool16_t, 32 , V_M2>;
314+ def VI32M4: GroupVTypeInfo<vint32m4_t, vint32m1_t, vbool8_t, 32 , V_M4>;
315+ def VI32M8: GroupVTypeInfo<vint32m8_t, vint32m1_t, vbool4_t, 32 , V_M8>;
316316
317- def VI64M2: GroupVTypeInfo<vint64m2_t,vint64m1_t,vbool32_t,64,VRM2 , V_M2>;
318- def VI64M4: GroupVTypeInfo<vint64m4_t,vint64m1_t,vbool16_t,64,VRM4 , V_M4>;
319- def VI64M8: GroupVTypeInfo<vint64m8_t,vint64m1_t,vbool8_t, 64,VRM8 , V_M8>;
317+ def VI64M2: GroupVTypeInfo<vint64m2_t, vint64m1_t, vbool32_t, 64 , V_M2>;
318+ def VI64M4: GroupVTypeInfo<vint64m4_t, vint64m1_t, vbool16_t, 64 , V_M4>;
319+ def VI64M8: GroupVTypeInfo<vint64m8_t, vint64m1_t, vbool8_t, 64 , V_M8>;
320320 }
321321 }
322322
323323 defset list<VTypeInfo> AllFloatVectors = {
324324 defset list<VTypeInfo> NoGroupFloatVectors = {
325325 defset list<VTypeInfo> FractionalGroupFloatVectors = {
326- def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, VR, V_MF4, f16, FPR16>;
327- def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, VR, V_MF2, f16, FPR16>;
328- def VF32MF2: VTypeInfo<vfloat32mf2_t,vbool64_t, 32, VR , V_MF2, f32, FPR32>;
326+ def VF16MF4: VTypeInfo<vfloat16mf4_t, vbool64_t, 16, V_MF4, f16, FPR16>;
327+ def VF16MF2: VTypeInfo<vfloat16mf2_t, vbool32_t, 16, V_MF2, f16, FPR16>;
328+ def VF32MF2: VTypeInfo<vfloat32mf2_t, vbool64_t, 32, V_MF2, f32, FPR32>;
329329 }
330- def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, VR, V_M1, f16, FPR16>;
331- def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, VR, V_M1, f32, FPR32>;
332- def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, VR, V_M1, f64, FPR64>;
330+ def VF16M1: VTypeInfo<vfloat16m1_t, vbool16_t, 16, V_M1, f16, FPR16>;
331+ def VF32M1: VTypeInfo<vfloat32m1_t, vbool32_t, 32, V_M1, f32, FPR32>;
332+ def VF64M1: VTypeInfo<vfloat64m1_t, vbool64_t, 64, V_M1, f64, FPR64>;
333333 }
334334
335335 defset list<GroupVTypeInfo> GroupFloatVectors = {
336336 def VF16M2: GroupVTypeInfo<vfloat16m2_t, vfloat16m1_t, vbool8_t, 16,
337- VRM2, V_M2, f16, FPR16>;
337+ V_M2, f16, FPR16>;
338338 def VF16M4: GroupVTypeInfo<vfloat16m4_t, vfloat16m1_t, vbool4_t, 16,
339- VRM4, V_M4, f16, FPR16>;
339+ V_M4, f16, FPR16>;
340340 def VF16M8: GroupVTypeInfo<vfloat16m8_t, vfloat16m1_t, vbool2_t, 16,
341- VRM8, V_M8, f16, FPR16>;
341+ V_M8, f16, FPR16>;
342342
343343 def VF32M2: GroupVTypeInfo<vfloat32m2_t, vfloat32m1_t, vbool16_t, 32,
344- VRM2, V_M2, f32, FPR32>;
344+ V_M2, f32, FPR32>;
345345 def VF32M4: GroupVTypeInfo<vfloat32m4_t, vfloat32m1_t, vbool8_t, 32,
346- VRM4, V_M4, f32, FPR32>;
346+ V_M4, f32, FPR32>;
347347 def VF32M8: GroupVTypeInfo<vfloat32m8_t, vfloat32m1_t, vbool4_t, 32,
348- VRM8, V_M8, f32, FPR32>;
348+ V_M8, f32, FPR32>;
349349
350350 def VF64M2: GroupVTypeInfo<vfloat64m2_t, vfloat64m1_t, vbool32_t, 64,
351- VRM2, V_M2, f64, FPR64>;
351+ V_M2, f64, FPR64>;
352352 def VF64M4: GroupVTypeInfo<vfloat64m4_t, vfloat64m1_t, vbool16_t, 64,
353- VRM4, V_M4, f64, FPR64>;
353+ V_M4, f64, FPR64>;
354354 def VF64M8: GroupVTypeInfo<vfloat64m8_t, vfloat64m1_t, vbool8_t, 64,
355- VRM8, V_M8, f64, FPR64>;
355+ V_M8, f64, FPR64>;
356356 }
357357 }
358358}
359359
360360defset list<VTypeInfo> AllBFloatVectors = {
361361 defset list<VTypeInfo> NoGroupBFloatVectors = {
362362 defset list<VTypeInfo> FractionalGroupBFloatVectors = {
363- def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, VR, V_MF4, bf16, FPR16>;
364- def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, VR, V_MF2, bf16, FPR16>;
363+ def VBF16MF4: VTypeInfo<vbfloat16mf4_t, vbool64_t, 16, V_MF4, bf16, FPR16>;
364+ def VBF16MF2: VTypeInfo<vbfloat16mf2_t, vbool32_t, 16, V_MF2, bf16, FPR16>;
365365 }
366- def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, VR, V_M1, bf16, FPR16>;
366+ def VBF16M1: VTypeInfo<vbfloat16m1_t, vbool16_t, 16, V_M1, bf16, FPR16>;
367367 }
368368
369369 defset list<GroupVTypeInfo> GroupBFloatVectors = {
370370 def VBF16M2: GroupVTypeInfo<vbfloat16m2_t, vbfloat16m1_t, vbool8_t, 16,
371- VRM2, V_M2, bf16, FPR16>;
371+ V_M2, bf16, FPR16>;
372372 def VBF16M4: GroupVTypeInfo<vbfloat16m4_t, vbfloat16m1_t, vbool4_t, 16,
373- VRM4, V_M4, bf16, FPR16>;
373+ V_M4, bf16, FPR16>;
374374 def VBF16M8: GroupVTypeInfo<vbfloat16m8_t, vbfloat16m1_t, vbool2_t, 16,
375- VRM8, V_M8, bf16, FPR16>;
375+ V_M8, bf16, FPR16>;
376376 }
377377}
378378
0 commit comments