================
@@ -199,7 +199,7 @@ def FloorF16F128 : Builtin, F16F128MathTemplate {
 
 def FmaF16F128 : Builtin, F16F128MathTemplate {
   let Spellings = ["__builtin_fma"];
-  let Attributes = [FunctionWithBuiltinPrefix, NoThrow, 
ConstIgnoringErrnoAndExceptions];
+  let Attributes = [FunctionWithBuiltinPrefix, NoThrow, 
ConstIgnoringErrnoAndExceptions, Constexpr];
----------------
ckoparkar wrote:

With this edit I get the following `Builtins.inc`:

```
Builtin::Info{Builtin::Info::StrOffsets{10959 /* __builtin_fmaf */, 10974 /* 
ffff */, 2289 /* Fne */, 0}, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{10979 /* fmaf */, 10974 /* ffff */, 
2299 /* fne */, 0}, HeaderDesc::MATH_H, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{10984 /* __builtin_fma */, 10998 /* 
dddd */, 2289 /* Fne */, 0}, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{11003 /* fma */, 10998 /* dddd */, 2299 
/* fne */, 0}, HeaderDesc::MATH_H, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{11007 /* __builtin_fmal */, 11022 /* 
LdLdLdLd */, 2289 /* Fne */, 0}, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{11031 /* fmal */, 11022 /* LdLdLdLd */, 
2299 /* fne */, 0}, HeaderDesc::MATH_H, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{11036 /* __builtin_fmaf16 */, 11053 /* 
hhhh */, 11058 /* FneE */, 0}, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
Builtin::Info{Builtin::Info::StrOffsets{11063 /* __builtin_fmaf128 */, 11081 /* 
LLdLLdLLdLLd */, 11058 /* FneE */, 0}, HeaderDesc::NO_HEADER, ALL_LANGUAGES},
```

Only `__builtin_fmaf16` and `__builtin_fmaf128` get the `//  E -> this function 
can be constant evaluated by Clang frontend` attribute; so these can be used in 
constexpr but others raise an error. Also, I think the class 
`F16F128MathTemplate` is generating `f16` and `f128` versions but I'm not sure 
how are the other versions `f`, `l`, etc. being generated.

 What am I missing?

https://github.com/llvm/llvm-project/pull/158048
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to