xref: /llvm-project/llvm/include/llvm/TargetParser/LoongArchTargetParser.def (revision 19834b4623fd1e7ae5185ed76031b407c3fa7a47)
1#ifndef LOONGARCH_FEATURE
2#define LOONGARCH_FEATURE(NAME, KIND)
3#endif
4
5LOONGARCH_FEATURE("+64bit", FK_64BIT)
6LOONGARCH_FEATURE("+f", FK_FP32)
7LOONGARCH_FEATURE("+d", FK_FP64)
8LOONGARCH_FEATURE("+lsx", FK_LSX)
9LOONGARCH_FEATURE("+lasx", FK_LASX)
10LOONGARCH_FEATURE("+lbt", FK_LBT)
11LOONGARCH_FEATURE("+lvz", FK_LVZ)
12LOONGARCH_FEATURE("+ual", FK_UAL)
13LOONGARCH_FEATURE("+frecipe", FK_FRECIPE)
14LOONGARCH_FEATURE("+lam-bh", FK_LAM_BH)
15LOONGARCH_FEATURE("+lamcas", FK_LAMCAS)
16LOONGARCH_FEATURE("+ld-seq-sa", FK_LD_SEQ_SA)
17LOONGARCH_FEATURE("+div32", FK_DIV32)
18LOONGARCH_FEATURE("+scq", FK_SCQ)
19
20#undef LOONGARCH_FEATURE
21
22#ifndef LOONGARCH_ARCH
23#define LOONGARCH_ARCH(NAME, KIND, FEATURES)
24#endif
25
26LOONGARCH_ARCH("loongarch64", AK_LOONGARCH64, FK_64BIT | FK_FP32 | FK_FP64 | FK_UAL)
27LOONGARCH_ARCH("la464", AK_LA464, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL)
28LOONGARCH_ARCH("la664", AK_LA664, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL | FK_FRECIPE | FK_LAM_BH | FK_LAMCAS | FK_LD_SEQ_SA | FK_DIV32 | FK_SCQ)
29
30#undef LOONGARCH_ARCH
31