#ifndef LOONGARCH_FEATURE
#define LOONGARCH_FEATURE(NAME, KIND)
#endif

LOONGARCH_FEATURE("invalid", FK_INVALID)
LOONGARCH_FEATURE("none", FK_NONE)
LOONGARCH_FEATURE("+64bit", FK_64BIT)
LOONGARCH_FEATURE("+f", FK_FP32)
LOONGARCH_FEATURE("+d", FK_FP64)
LOONGARCH_FEATURE("+lsx", FK_LSX)
LOONGARCH_FEATURE("+lasx", FK_LASX)
LOONGARCH_FEATURE("+lbt", FK_LBT)
LOONGARCH_FEATURE("+lvz", FK_LVZ)

#undef LOONGARCH_FEATURE

#ifndef LOONGARCH_ARCH
#define LOONGARCH_ARCH(NAME, KIND, FEATURES)
#endif

LOONGARCH_ARCH("invalid", AK_INVALID, FK_INVALID)
LOONGARCH_ARCH("loongarch64", AK_LOONGARCH64, FK_64BIT | FK_FP32 | FK_FP64)
LOONGARCH_ARCH("la464", AK_LA464, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX)

#undef LOONGARCH_ARCH
