Merge pull request #19862 from jketema/complex

C++: Support more complex 16-bit float types
This commit is contained in:
Jeroen Ketema
2025-06-24 17:26:07 +02:00
committed by GitHub
15 changed files with 10089 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added support for `__fp16 _Complex` and `__bf16 _Complex` types

View File

@@ -858,6 +858,15 @@ private predicate floatingPointTypeMapping(
or
// __mfp8
kind = 62 and base = 2 and domain = TRealDomain() and realKind = 62 and extended = false
or
// _Complex __fp16
kind = 64 and base = 2 and domain = TComplexDomain() and realKind = 54 and extended = false
or
// _Complex __bf16
kind = 65 and base = 2 and domain = TComplexDomain() and realKind = 55 and extended = false
or
// _Complex std::float16_t
kind = 66 and base = 2 and domain = TComplexDomain() and realKind = 56 and extended = false
}
/**

View File

@@ -693,6 +693,9 @@ case @builtintype.kind of
| 61 = @complex_std_float128 // _Complex _Float128
| 62 = @mfp8 // __mfp8
| 63 = @scalable_vector_count // __SVCount_t
| 64 = @complex_fp16 // _Complex __fp16
| 65 = @complex_std_bfloat16 // _Complex __bf16
| 66 = @complex_std_float16 // _Complex std::float16_t
;
builtintypes(

View File

@@ -336,6 +336,18 @@
<k>@scalable_vector_count</k>
<v>124</v>
</e>
<e>
<k>@complex_fp16</k>
<v>124</v>
</e>
<e>
<k>@complex_std_bfloat16</k>
<v>124</v>
</e>
<e>
<k>@complex_std_float16</k>
<v>124</v>
</e>
<e>
<k>@pointer</k>
<v>455609</v>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,2 @@
description: Support more complex 16-bit floating-point types
compatibility: full