@@ -23,6 +23,11 @@ public let FloatingPointConversion = [
23
23
runFunction: run_ConvertFloatingPoint_MockFloat64Exactly,
24
24
tags: [ . validation, . api] ,
25
25
setUpFunction: { blackHole ( mockFloat64s) } ) ,
26
+ BenchmarkInfo (
27
+ name: " ConvertFloatingPoint.MockFloat64Exactly.bis " ,
28
+ runFunction: run_ConvertFloatingPoint_MockFloat64Exactly_bis,
29
+ tags: [ . validation, . api] ,
30
+ setUpFunction: { blackHole ( mockFloat64s) } ) ,
26
31
BenchmarkInfo (
27
32
name: " ConvertFloatingPoint.MockFloat64ToInt64 " ,
28
33
runFunction: run_ConvertFloatingPoint_MockFloat64ToInt64,
@@ -135,6 +140,11 @@ struct MockFloat64: MockBinaryFloatingPoint {
135
140
init ( _ _value: Double ) { self . _value = _value }
136
141
}
137
142
143
+ struct MockFloat32 : MockBinaryFloatingPoint {
144
+ var _value : Float
145
+ init ( _ _value: Float ) { self . _value = _value }
146
+ }
147
+
138
148
let doubles = [
139
149
1.8547832857295 , 26.321549267719135 , 98.9544480962058 , 73.70286973782363 ,
140
150
82.04918555938816 , 76.38902969312758 , 46.35647857011161 , 64.0821426030317 ,
@@ -181,6 +191,16 @@ public func run_ConvertFloatingPoint_MockFloat64Exactly(_ N: Int) {
181
191
}
182
192
}
183
193
194
+ @inline ( never)
195
+ public func run_ConvertFloatingPoint_MockFloat64Exactly_bis( _ N: Int ) {
196
+ for _ in 0 ..< ( N * 100 ) {
197
+ for element in mockFloat64s {
198
+ let f = convert ( exactly: identity ( element) , to: MockFloat32 . self)
199
+ blackHole ( f)
200
+ }
201
+ }
202
+ }
203
+
184
204
@inline ( never)
185
205
public func run_ConvertFloatingPoint_MockFloat64ToInt64( _ N: Int ) {
186
206
for _ in 0 ..< ( N * 1000 ) {
0 commit comments