PR target/118843
gcc/ChangeLog:
* config/loongarch/loongarch-c.cc
(loongarch_update_cpp_builtins): Fix macro definition issues.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/pr118843.c: New test.
(cherry picked from commit
ee579b7c257468b9032ab4583ec455fa871d4428)
else
builtin_define ("__loongarch_frlen=0");
- if (TARGET_HARD_FLOAT && ISA_HAS_FRECIPE)
- builtin_define ("__loongarch_frecipe");
-
if (ISA_HAS_LSX)
{
builtin_define ("__loongarch_simd");
int max_v_major = 1, max_v_minor = 0;
for (int i = 0; i < N_EVO_FEATURES; i++)
- if (la_target.isa.evolution & la_evo_feature_masks[i])
+ if (la_target.isa.evolution & la_evo_feature_masks[i]
+ && (la_evo_feature_masks[i] != OPTION_MASK_ISA_FRECIPE
+ || TARGET_HARD_FLOAT))
{
builtin_define (la_evo_macro_name[i]);
--- /dev/null
+/* { dg-do preprocess } */
+/* { dg-options "-mfrecipe -mfpu=none" } */
+
+#ifdef __loongarch_frecipe
+#error __loongarch_frecipe should not be avaliable here
+#endif