@@ -257,13 +257,13 @@ class SegRegClass<LMULInfo m, int nf> {
257
257
// Vector register and vector group type information.
258
258
//===----------------------------------------------------------------------===//
259
259
260
- class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
260
+ class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, LMULInfo M,
261
261
ValueType Scal = XLenVT, RegisterClass ScalarReg = GPR> {
262
262
ValueType Vector = Vec;
263
263
ValueType Mask = Mas;
264
264
int SEW = Sew;
265
265
int Log2SEW = !logtwo(Sew);
266
- VReg RegClass = Reg ;
266
+ VReg RegClass = M.vrclass ;
267
267
LMULInfo LMul = M;
268
268
ValueType Scalar = Scal;
269
269
RegisterClass ScalarRegClass = ScalarReg;
@@ -279,100 +279,100 @@ class VTypeInfo<ValueType Vec, ValueType Mas, int Sew, VReg Reg, LMULInfo M,
279
279
}
280
280
281
281
class GroupVTypeInfo<ValueType Vec, ValueType VecM1, ValueType Mas, int Sew,
282
- VReg Reg, LMULInfo M, ValueType Scal = XLenVT,
282
+ LMULInfo M, ValueType Scal = XLenVT,
283
283
RegisterClass ScalarReg = GPR>
284
- : VTypeInfo<Vec, Mas, Sew, Reg, M, Scal, ScalarReg> {
284
+ : VTypeInfo<Vec, Mas, Sew, M, Scal, ScalarReg> {
285
285
ValueType VectorM1 = VecM1;
286
286
}
287
287
288
288
defset list<VTypeInfo> AllVectors = {
289
289
defset list<VTypeInfo> AllIntegerVectors = {
290
290
defset list<VTypeInfo> NoGroupIntegerVectors = {
291
291
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>;
298
298
}
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>;
303
303
}
304
304
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>;
308
308
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>;
312
312
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>;
316
316
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>;
320
320
}
321
321
}
322
322
323
323
defset list<VTypeInfo> AllFloatVectors = {
324
324
defset list<VTypeInfo> NoGroupFloatVectors = {
325
325
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>;
329
329
}
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>;
333
333
}
334
334
335
335
defset list<GroupVTypeInfo> GroupFloatVectors = {
336
336
def VF16M2: GroupVTypeInfo<vfloat16m2_t, vfloat16m1_t, vbool8_t, 16,
337
- VRM2, V_M2, f16, FPR16>;
337
+ V_M2, f16, FPR16>;
338
338
def VF16M4: GroupVTypeInfo<vfloat16m4_t, vfloat16m1_t, vbool4_t, 16,
339
- VRM4, V_M4, f16, FPR16>;
339
+ V_M4, f16, FPR16>;
340
340
def VF16M8: GroupVTypeInfo<vfloat16m8_t, vfloat16m1_t, vbool2_t, 16,
341
- VRM8, V_M8, f16, FPR16>;
341
+ V_M8, f16, FPR16>;
342
342
343
343
def VF32M2: GroupVTypeInfo<vfloat32m2_t, vfloat32m1_t, vbool16_t, 32,
344
- VRM2, V_M2, f32, FPR32>;
344
+ V_M2, f32, FPR32>;
345
345
def VF32M4: GroupVTypeInfo<vfloat32m4_t, vfloat32m1_t, vbool8_t, 32,
346
- VRM4, V_M4, f32, FPR32>;
346
+ V_M4, f32, FPR32>;
347
347
def VF32M8: GroupVTypeInfo<vfloat32m8_t, vfloat32m1_t, vbool4_t, 32,
348
- VRM8, V_M8, f32, FPR32>;
348
+ V_M8, f32, FPR32>;
349
349
350
350
def VF64M2: GroupVTypeInfo<vfloat64m2_t, vfloat64m1_t, vbool32_t, 64,
351
- VRM2, V_M2, f64, FPR64>;
351
+ V_M2, f64, FPR64>;
352
352
def VF64M4: GroupVTypeInfo<vfloat64m4_t, vfloat64m1_t, vbool16_t, 64,
353
- VRM4, V_M4, f64, FPR64>;
353
+ V_M4, f64, FPR64>;
354
354
def VF64M8: GroupVTypeInfo<vfloat64m8_t, vfloat64m1_t, vbool8_t, 64,
355
- VRM8, V_M8, f64, FPR64>;
355
+ V_M8, f64, FPR64>;
356
356
}
357
357
}
358
358
}
359
359
360
360
defset list<VTypeInfo> AllBFloatVectors = {
361
361
defset list<VTypeInfo> NoGroupBFloatVectors = {
362
362
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>;
365
365
}
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>;
367
367
}
368
368
369
369
defset list<GroupVTypeInfo> GroupBFloatVectors = {
370
370
def VBF16M2: GroupVTypeInfo<vbfloat16m2_t, vbfloat16m1_t, vbool8_t, 16,
371
- VRM2, V_M2, bf16, FPR16>;
371
+ V_M2, bf16, FPR16>;
372
372
def VBF16M4: GroupVTypeInfo<vbfloat16m4_t, vbfloat16m1_t, vbool4_t, 16,
373
- VRM4, V_M4, bf16, FPR16>;
373
+ V_M4, bf16, FPR16>;
374
374
def VBF16M8: GroupVTypeInfo<vbfloat16m8_t, vbfloat16m1_t, vbool2_t, 16,
375
- VRM8, V_M8, bf16, FPR16>;
375
+ V_M8, bf16, FPR16>;
376
376
}
377
377
}
378
378
0 commit comments