Skip to content

Commit 4d6eeae

Browse files
kito-chenglravenclaw
authored andcommitted
[ValueTypes][NFC] Generate EVT::getTypeForEVT from GenVT.inc (llvm#96608)
Most of MVT has simple mapping to the LLVM type, so it would be nice to auto generate that from ValueTypes.td, that could reduce the effort when we adding new MVT, especially new vector MVT with different size.
1 parent 51f9c38 commit 4d6eeae

File tree

2 files changed

+67
-361
lines changed

2 files changed

+67
-361
lines changed

llvm/lib/CodeGen/ValueTypes.cpp

Lines changed: 3 additions & 361 deletions
Original file line numberDiff line numberDiff line change
@@ -207,375 +207,17 @@ Type *EVT::getTypeForEVT(LLVMContext &Context) const {
207207
assert(isExtended() && "Type is not extended!");
208208
return LLVMTy;
209209
case MVT::isVoid: return Type::getVoidTy(Context);
210-
case MVT::i1: return Type::getInt1Ty(Context);
211-
case MVT::i2: return Type::getIntNTy(Context, 2);
212-
case MVT::i4: return Type::getIntNTy(Context, 4);
213-
case MVT::i8: return Type::getInt8Ty(Context);
214-
case MVT::i16: return Type::getInt16Ty(Context);
215-
case MVT::i32: return Type::getInt32Ty(Context);
216-
case MVT::i64: return Type::getInt64Ty(Context);
217-
case MVT::i128: return IntegerType::get(Context, 128);
218-
case MVT::f16: return Type::getHalfTy(Context);
219-
case MVT::bf16: return Type::getBFloatTy(Context);
220-
case MVT::f32: return Type::getFloatTy(Context);
221-
case MVT::f64: return Type::getDoubleTy(Context);
222-
case MVT::f80: return Type::getX86_FP80Ty(Context);
223-
case MVT::f128: return Type::getFP128Ty(Context);
224-
case MVT::ppcf128: return Type::getPPC_FP128Ty(Context);
225210
case MVT::x86mmx: return Type::getX86_MMXTy(Context);
226211
case MVT::aarch64svcount:
227212
return TargetExtType::get(Context, "aarch64.svcount");
228213
case MVT::x86amx: return Type::getX86_AMXTy(Context);
229214
case MVT::i64x8: return IntegerType::get(Context, 512);
230215
case MVT::externref: return Type::getWasm_ExternrefTy(Context);
231216
case MVT::funcref: return Type::getWasm_FuncrefTy(Context);
232-
case MVT::v1i1:
233-
return FixedVectorType::get(Type::getInt1Ty(Context), 1);
234-
case MVT::v2i1:
235-
return FixedVectorType::get(Type::getInt1Ty(Context), 2);
236-
case MVT::v3i1:
237-
return FixedVectorType::get(Type::getInt1Ty(Context), 3);
238-
case MVT::v4i1:
239-
return FixedVectorType::get(Type::getInt1Ty(Context), 4);
240-
case MVT::v8i1:
241-
return FixedVectorType::get(Type::getInt1Ty(Context), 8);
242-
case MVT::v16i1:
243-
return FixedVectorType::get(Type::getInt1Ty(Context), 16);
244-
case MVT::v32i1:
245-
return FixedVectorType::get(Type::getInt1Ty(Context), 32);
246-
case MVT::v64i1:
247-
return FixedVectorType::get(Type::getInt1Ty(Context), 64);
248-
case MVT::v128i1:
249-
return FixedVectorType::get(Type::getInt1Ty(Context), 128);
250-
case MVT::v256i1:
251-
return FixedVectorType::get(Type::getInt1Ty(Context), 256);
252-
case MVT::v512i1:
253-
return FixedVectorType::get(Type::getInt1Ty(Context), 512);
254-
case MVT::v1024i1:
255-
return FixedVectorType::get(Type::getInt1Ty(Context), 1024);
256-
case MVT::v2048i1:
257-
return FixedVectorType::get(Type::getInt1Ty(Context), 2048);
258-
case MVT::v128i2:
259-
return FixedVectorType::get(Type::getIntNTy(Context, 2), 128);
260-
case MVT::v256i2:
261-
return FixedVectorType::get(Type::getIntNTy(Context, 2), 256);
262-
case MVT::v64i4:
263-
return FixedVectorType::get(Type::getIntNTy(Context, 4), 64);
264-
case MVT::v128i4:
265-
return FixedVectorType::get(Type::getIntNTy(Context, 4), 128);
266-
case MVT::v1i8:
267-
return FixedVectorType::get(Type::getInt8Ty(Context), 1);
268-
case MVT::v2i8:
269-
return FixedVectorType::get(Type::getInt8Ty(Context), 2);
270-
case MVT::v3i8:
271-
return FixedVectorType::get(Type::getInt8Ty(Context), 3);
272-
case MVT::v4i8:
273-
return FixedVectorType::get(Type::getInt8Ty(Context), 4);
274-
case MVT::v8i8:
275-
return FixedVectorType::get(Type::getInt8Ty(Context), 8);
276-
case MVT::v16i8:
277-
return FixedVectorType::get(Type::getInt8Ty(Context), 16);
278-
case MVT::v32i8:
279-
return FixedVectorType::get(Type::getInt8Ty(Context), 32);
280-
case MVT::v64i8:
281-
return FixedVectorType::get(Type::getInt8Ty(Context), 64);
282-
case MVT::v128i8:
283-
return FixedVectorType::get(Type::getInt8Ty(Context), 128);
284-
case MVT::v256i8:
285-
return FixedVectorType::get(Type::getInt8Ty(Context), 256);
286-
case MVT::v512i8:
287-
return FixedVectorType::get(Type::getInt8Ty(Context), 512);
288-
case MVT::v1024i8:
289-
return FixedVectorType::get(Type::getInt8Ty(Context), 1024);
290-
case MVT::v1i16:
291-
return FixedVectorType::get(Type::getInt16Ty(Context), 1);
292-
case MVT::v2i16:
293-
return FixedVectorType::get(Type::getInt16Ty(Context), 2);
294-
case MVT::v3i16:
295-
return FixedVectorType::get(Type::getInt16Ty(Context), 3);
296-
case MVT::v4i16:
297-
return FixedVectorType::get(Type::getInt16Ty(Context), 4);
298-
case MVT::v8i16:
299-
return FixedVectorType::get(Type::getInt16Ty(Context), 8);
300-
case MVT::v16i16:
301-
return FixedVectorType::get(Type::getInt16Ty(Context), 16);
302-
case MVT::v32i16:
303-
return FixedVectorType::get(Type::getInt16Ty(Context), 32);
304-
case MVT::v64i16:
305-
return FixedVectorType::get(Type::getInt16Ty(Context), 64);
306-
case MVT::v128i16:
307-
return FixedVectorType::get(Type::getInt16Ty(Context), 128);
308-
case MVT::v256i16:
309-
return FixedVectorType::get(Type::getInt16Ty(Context), 256);
310-
case MVT::v512i16:
311-
return FixedVectorType::get(Type::getInt16Ty(Context), 512);
312-
case MVT::v1i32:
313-
return FixedVectorType::get(Type::getInt32Ty(Context), 1);
314-
case MVT::v2i32:
315-
return FixedVectorType::get(Type::getInt32Ty(Context), 2);
316-
case MVT::v3i32:
317-
return FixedVectorType::get(Type::getInt32Ty(Context), 3);
318-
case MVT::v4i32:
319-
return FixedVectorType::get(Type::getInt32Ty(Context), 4);
320-
case MVT::v5i32:
321-
return FixedVectorType::get(Type::getInt32Ty(Context), 5);
322-
case MVT::v6i32:
323-
return FixedVectorType::get(Type::getInt32Ty(Context), 6);
324-
case MVT::v7i32:
325-
return FixedVectorType::get(Type::getInt32Ty(Context), 7);
326-
case MVT::v8i32:
327-
return FixedVectorType::get(Type::getInt32Ty(Context), 8);
328-
case MVT::v9i32:
329-
return FixedVectorType::get(Type::getInt32Ty(Context), 9);
330-
case MVT::v10i32:
331-
return FixedVectorType::get(Type::getInt32Ty(Context), 10);
332-
case MVT::v11i32:
333-
return FixedVectorType::get(Type::getInt32Ty(Context), 11);
334-
case MVT::v12i32:
335-
return FixedVectorType::get(Type::getInt32Ty(Context), 12);
336-
case MVT::v16i32:
337-
return FixedVectorType::get(Type::getInt32Ty(Context), 16);
338-
case MVT::v32i32:
339-
return FixedVectorType::get(Type::getInt32Ty(Context), 32);
340-
case MVT::v64i32:
341-
return FixedVectorType::get(Type::getInt32Ty(Context), 64);
342-
case MVT::v128i32:
343-
return FixedVectorType::get(Type::getInt32Ty(Context), 128);
344-
case MVT::v256i32:
345-
return FixedVectorType::get(Type::getInt32Ty(Context), 256);
346-
case MVT::v512i32:
347-
return FixedVectorType::get(Type::getInt32Ty(Context), 512);
348-
case MVT::v1024i32:
349-
return FixedVectorType::get(Type::getInt32Ty(Context), 1024);
350-
case MVT::v2048i32:
351-
return FixedVectorType::get(Type::getInt32Ty(Context), 2048);
352-
case MVT::v1i64:
353-
return FixedVectorType::get(Type::getInt64Ty(Context), 1);
354-
case MVT::v2i64:
355-
return FixedVectorType::get(Type::getInt64Ty(Context), 2);
356-
case MVT::v3i64:
357-
return FixedVectorType::get(Type::getInt64Ty(Context), 3);
358-
case MVT::v4i64:
359-
return FixedVectorType::get(Type::getInt64Ty(Context), 4);
360-
case MVT::v8i64:
361-
return FixedVectorType::get(Type::getInt64Ty(Context), 8);
362-
case MVT::v16i64:
363-
return FixedVectorType::get(Type::getInt64Ty(Context), 16);
364-
case MVT::v32i64:
365-
return FixedVectorType::get(Type::getInt64Ty(Context), 32);
366-
case MVT::v64i64:
367-
return FixedVectorType::get(Type::getInt64Ty(Context), 64);
368-
case MVT::v128i64:
369-
return FixedVectorType::get(Type::getInt64Ty(Context), 128);
370-
case MVT::v256i64:
371-
return FixedVectorType::get(Type::getInt64Ty(Context), 256);
372-
case MVT::v1i128:
373-
return FixedVectorType::get(Type::getInt128Ty(Context), 1);
374-
case MVT::v1f16:
375-
return FixedVectorType::get(Type::getHalfTy(Context), 1);
376-
case MVT::v2f16:
377-
return FixedVectorType::get(Type::getHalfTy(Context), 2);
378-
case MVT::v3f16:
379-
return FixedVectorType::get(Type::getHalfTy(Context), 3);
380-
case MVT::v4f16:
381-
return FixedVectorType::get(Type::getHalfTy(Context), 4);
382-
case MVT::v8f16:
383-
return FixedVectorType::get(Type::getHalfTy(Context), 8);
384-
case MVT::v16f16:
385-
return FixedVectorType::get(Type::getHalfTy(Context), 16);
386-
case MVT::v32f16:
387-
return FixedVectorType::get(Type::getHalfTy(Context), 32);
388-
case MVT::v64f16:
389-
return FixedVectorType::get(Type::getHalfTy(Context), 64);
390-
case MVT::v128f16:
391-
return FixedVectorType::get(Type::getHalfTy(Context), 128);
392-
case MVT::v256f16:
393-
return FixedVectorType::get(Type::getHalfTy(Context), 256);
394-
case MVT::v512f16:
395-
return FixedVectorType::get(Type::getHalfTy(Context), 512);
396-
case MVT::v2bf16:
397-
return FixedVectorType::get(Type::getBFloatTy(Context), 2);
398-
case MVT::v3bf16:
399-
return FixedVectorType::get(Type::getBFloatTy(Context), 3);
400-
case MVT::v4bf16:
401-
return FixedVectorType::get(Type::getBFloatTy(Context), 4);
402-
case MVT::v8bf16:
403-
return FixedVectorType::get(Type::getBFloatTy(Context), 8);
404-
case MVT::v16bf16:
405-
return FixedVectorType::get(Type::getBFloatTy(Context), 16);
406-
case MVT::v32bf16:
407-
return FixedVectorType::get(Type::getBFloatTy(Context), 32);
408-
case MVT::v64bf16:
409-
return FixedVectorType::get(Type::getBFloatTy(Context), 64);
410-
case MVT::v128bf16:
411-
return FixedVectorType::get(Type::getBFloatTy(Context), 128);
412-
case MVT::v1f32:
413-
return FixedVectorType::get(Type::getFloatTy(Context), 1);
414-
case MVT::v2f32:
415-
return FixedVectorType::get(Type::getFloatTy(Context), 2);
416-
case MVT::v3f32:
417-
return FixedVectorType::get(Type::getFloatTy(Context), 3);
418-
case MVT::v4f32:
419-
return FixedVectorType::get(Type::getFloatTy(Context), 4);
420-
case MVT::v5f32:
421-
return FixedVectorType::get(Type::getFloatTy(Context), 5);
422-
case MVT::v6f32:
423-
return FixedVectorType::get(Type::getFloatTy(Context), 6);
424-
case MVT::v7f32:
425-
return FixedVectorType::get(Type::getFloatTy(Context), 7);
426-
case MVT::v8f32:
427-
return FixedVectorType::get(Type::getFloatTy(Context), 8);
428-
case MVT::v9f32:
429-
return FixedVectorType::get(Type::getFloatTy(Context), 9);
430-
case MVT::v10f32:
431-
return FixedVectorType::get(Type::getFloatTy(Context), 10);
432-
case MVT::v11f32:
433-
return FixedVectorType::get(Type::getFloatTy(Context), 11);
434-
case MVT::v12f32:
435-
return FixedVectorType::get(Type::getFloatTy(Context), 12);
436-
case MVT::v16f32:
437-
return FixedVectorType::get(Type::getFloatTy(Context), 16);
438-
case MVT::v32f32:
439-
return FixedVectorType::get(Type::getFloatTy(Context), 32);
440-
case MVT::v64f32:
441-
return FixedVectorType::get(Type::getFloatTy(Context), 64);
442-
case MVT::v128f32:
443-
return FixedVectorType::get(Type::getFloatTy(Context), 128);
444-
case MVT::v256f32:
445-
return FixedVectorType::get(Type::getFloatTy(Context), 256);
446-
case MVT::v512f32:
447-
return FixedVectorType::get(Type::getFloatTy(Context), 512);
448-
case MVT::v1024f32:
449-
return FixedVectorType::get(Type::getFloatTy(Context), 1024);
450-
case MVT::v2048f32:
451-
return FixedVectorType::get(Type::getFloatTy(Context), 2048);
452-
case MVT::v1f64:
453-
return FixedVectorType::get(Type::getDoubleTy(Context), 1);
454-
case MVT::v2f64:
455-
return FixedVectorType::get(Type::getDoubleTy(Context), 2);
456-
case MVT::v3f64:
457-
return FixedVectorType::get(Type::getDoubleTy(Context), 3);
458-
case MVT::v4f64:
459-
return FixedVectorType::get(Type::getDoubleTy(Context), 4);
460-
case MVT::v8f64:
461-
return FixedVectorType::get(Type::getDoubleTy(Context), 8);
462-
case MVT::v16f64:
463-
return FixedVectorType::get(Type::getDoubleTy(Context), 16);
464-
case MVT::v32f64:
465-
return FixedVectorType::get(Type::getDoubleTy(Context), 32);
466-
case MVT::v64f64:
467-
return FixedVectorType::get(Type::getDoubleTy(Context), 64);
468-
case MVT::v128f64:
469-
return FixedVectorType::get(Type::getDoubleTy(Context), 128);
470-
case MVT::v256f64:
471-
return FixedVectorType::get(Type::getDoubleTy(Context), 256);
472-
case MVT::nxv1i1:
473-
return ScalableVectorType::get(Type::getInt1Ty(Context), 1);
474-
case MVT::nxv2i1:
475-
return ScalableVectorType::get(Type::getInt1Ty(Context), 2);
476-
case MVT::nxv4i1:
477-
return ScalableVectorType::get(Type::getInt1Ty(Context), 4);
478-
case MVT::nxv8i1:
479-
return ScalableVectorType::get(Type::getInt1Ty(Context), 8);
480-
case MVT::nxv16i1:
481-
return ScalableVectorType::get(Type::getInt1Ty(Context), 16);
482-
case MVT::nxv32i1:
483-
return ScalableVectorType::get(Type::getInt1Ty(Context), 32);
484-
case MVT::nxv64i1:
485-
return ScalableVectorType::get(Type::getInt1Ty(Context), 64);
486-
case MVT::nxv1i8:
487-
return ScalableVectorType::get(Type::getInt8Ty(Context), 1);
488-
case MVT::nxv2i8:
489-
return ScalableVectorType::get(Type::getInt8Ty(Context), 2);
490-
case MVT::nxv4i8:
491-
return ScalableVectorType::get(Type::getInt8Ty(Context), 4);
492-
case MVT::nxv8i8:
493-
return ScalableVectorType::get(Type::getInt8Ty(Context), 8);
494-
case MVT::nxv16i8:
495-
return ScalableVectorType::get(Type::getInt8Ty(Context), 16);
496-
case MVT::nxv32i8:
497-
return ScalableVectorType::get(Type::getInt8Ty(Context), 32);
498-
case MVT::nxv64i8:
499-
return ScalableVectorType::get(Type::getInt8Ty(Context), 64);
500-
case MVT::nxv1i16:
501-
return ScalableVectorType::get(Type::getInt16Ty(Context), 1);
502-
case MVT::nxv2i16:
503-
return ScalableVectorType::get(Type::getInt16Ty(Context), 2);
504-
case MVT::nxv4i16:
505-
return ScalableVectorType::get(Type::getInt16Ty(Context), 4);
506-
case MVT::nxv8i16:
507-
return ScalableVectorType::get(Type::getInt16Ty(Context), 8);
508-
case MVT::nxv16i16:
509-
return ScalableVectorType::get(Type::getInt16Ty(Context), 16);
510-
case MVT::nxv32i16:
511-
return ScalableVectorType::get(Type::getInt16Ty(Context), 32);
512-
case MVT::nxv1i32:
513-
return ScalableVectorType::get(Type::getInt32Ty(Context), 1);
514-
case MVT::nxv2i32:
515-
return ScalableVectorType::get(Type::getInt32Ty(Context), 2);
516-
case MVT::nxv4i32:
517-
return ScalableVectorType::get(Type::getInt32Ty(Context), 4);
518-
case MVT::nxv8i32:
519-
return ScalableVectorType::get(Type::getInt32Ty(Context), 8);
520-
case MVT::nxv16i32:
521-
return ScalableVectorType::get(Type::getInt32Ty(Context), 16);
522-
case MVT::nxv32i32:
523-
return ScalableVectorType::get(Type::getInt32Ty(Context), 32);
524-
case MVT::nxv1i64:
525-
return ScalableVectorType::get(Type::getInt64Ty(Context), 1);
526-
case MVT::nxv2i64:
527-
return ScalableVectorType::get(Type::getInt64Ty(Context), 2);
528-
case MVT::nxv4i64:
529-
return ScalableVectorType::get(Type::getInt64Ty(Context), 4);
530-
case MVT::nxv8i64:
531-
return ScalableVectorType::get(Type::getInt64Ty(Context), 8);
532-
case MVT::nxv16i64:
533-
return ScalableVectorType::get(Type::getInt64Ty(Context), 16);
534-
case MVT::nxv32i64:
535-
return ScalableVectorType::get(Type::getInt64Ty(Context), 32);
536-
case MVT::nxv1f16:
537-
return ScalableVectorType::get(Type::getHalfTy(Context), 1);
538-
case MVT::nxv2f16:
539-
return ScalableVectorType::get(Type::getHalfTy(Context), 2);
540-
case MVT::nxv4f16:
541-
return ScalableVectorType::get(Type::getHalfTy(Context), 4);
542-
case MVT::nxv8f16:
543-
return ScalableVectorType::get(Type::getHalfTy(Context), 8);
544-
case MVT::nxv16f16:
545-
return ScalableVectorType::get(Type::getHalfTy(Context), 16);
546-
case MVT::nxv32f16:
547-
return ScalableVectorType::get(Type::getHalfTy(Context), 32);
548-
case MVT::nxv1bf16:
549-
return ScalableVectorType::get(Type::getBFloatTy(Context), 1);
550-
case MVT::nxv2bf16:
551-
return ScalableVectorType::get(Type::getBFloatTy(Context), 2);
552-
case MVT::nxv4bf16:
553-
return ScalableVectorType::get(Type::getBFloatTy(Context), 4);
554-
case MVT::nxv8bf16:
555-
return ScalableVectorType::get(Type::getBFloatTy(Context), 8);
556-
case MVT::nxv16bf16:
557-
return ScalableVectorType::get(Type::getBFloatTy(Context), 16);
558-
case MVT::nxv32bf16:
559-
return ScalableVectorType::get(Type::getBFloatTy(Context), 32);
560-
case MVT::nxv1f32:
561-
return ScalableVectorType::get(Type::getFloatTy(Context), 1);
562-
case MVT::nxv2f32:
563-
return ScalableVectorType::get(Type::getFloatTy(Context), 2);
564-
case MVT::nxv4f32:
565-
return ScalableVectorType::get(Type::getFloatTy(Context), 4);
566-
case MVT::nxv8f32:
567-
return ScalableVectorType::get(Type::getFloatTy(Context), 8);
568-
case MVT::nxv16f32:
569-
return ScalableVectorType::get(Type::getFloatTy(Context), 16);
570-
case MVT::nxv1f64:
571-
return ScalableVectorType::get(Type::getDoubleTy(Context), 1);
572-
case MVT::nxv2f64:
573-
return ScalableVectorType::get(Type::getDoubleTy(Context), 2);
574-
case MVT::nxv4f64:
575-
return ScalableVectorType::get(Type::getDoubleTy(Context), 4);
576-
case MVT::nxv8f64:
577-
return ScalableVectorType::get(Type::getDoubleTy(Context), 8);
578217
case MVT::Metadata: return Type::getMetadataTy(Context);
218+
#define GET_VT_EVT(Ty, EVT) case MVT::Ty: return EVT;
219+
#include "llvm/CodeGen/GenVT.inc"
220+
#undef GET_VT_EVT
579221
}
580222
// clang-format on
581223
}

0 commit comments

Comments
 (0)