Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 3db879e

Browse files
committedFeb 18, 2025·
Add for-loop tests & baselines
1 parent b1e1b0a commit 3db879e

31 files changed

+13308
-0
lines changed
 

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoop.fs

+96
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,99 @@ module ForLoop =
217217
compilation
218218
|> getCompilation
219219
|> verifyCompilation
220+
221+
// SOURCE=ForLoopSByte.fs SCFLAGS="--optimize+" # ForLoopSByte.fs --optimize+
222+
[<Theory; FileInlineData("ForLoopSByte.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
223+
let ``ForLoopSByte_fs`` compilation =
224+
compilation
225+
|> getCompilation
226+
|> withLangVersionPreview
227+
|> verifyCompilation
228+
229+
// SOURCE=ForLoopByte.fs SCFLAGS="--optimize+" # ForLoopByte.fs --optimize+
230+
[<Theory; FileInlineData("ForLoopByte.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
231+
let ``ForLoopByte_fs`` compilation =
232+
compilation
233+
|> getCompilation
234+
|> withLangVersionPreview
235+
|> verifyCompilation
236+
237+
// SOURCE=ForLoopChar.fs SCFLAGS="--optimize+" # ForLoopChar.fs --optimize+
238+
[<Theory; FileInlineData("ForLoopChar.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
239+
let ``ForLoopChar_fs`` compilation =
240+
compilation
241+
|> getCompilation
242+
|> withLangVersionPreview
243+
|> verifyCompilation
244+
245+
// SOURCE=ForLoopInt16.fs SCFLAGS="--optimize+" # ForLoopInt16.fs --optimize+
246+
[<Theory; FileInlineData("ForLoopInt16.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
247+
let ``ForLoopInt16_fs`` compilation =
248+
compilation
249+
|> getCompilation
250+
|> withLangVersionPreview
251+
|> verifyCompilation
252+
253+
// SOURCE=ForLoopUInt16.fs SCFLAGS="--optimize+" # ForLoopUInt16.fs --optimize+
254+
[<Theory; FileInlineData("ForLoopUInt16.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
255+
let ``ForLoopUInt16_`` compilation =
256+
compilation
257+
|> getCompilation
258+
|> withLangVersionPreview
259+
|> verifyCompilation
260+
261+
// SOURCE=ForLoopInt32.fs SCFLAGS="--optimize+" # ForLoopInt32.fs --optimize+
262+
[<Theory; FileInlineData("ForLoopInt32.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
263+
let ``ForLoopInt32_fs`` compilation =
264+
compilation
265+
|> getCompilation
266+
|> withLangVersionPreview
267+
|> verifyCompilation
268+
269+
// SOURCE=ForLoopUInt32.fs SCFLAGS="--optimize+" # ForLoopUInt32.fs --optimize+
270+
[<Theory; FileInlineData("ForLoopUInt32.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
271+
let ``ForLoopUInt32_fs`` compilation =
272+
compilation
273+
|> getCompilation
274+
|> withLangVersionPreview
275+
|> verifyCompilation
276+
277+
// SOURCE=ForLoopInt64.fs SCFLAGS="--optimize+" # ForLoopInt64.fs --optimize+
278+
[<Theory; FileInlineData("ForLoopInt64.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
279+
let ``ForLoopInt64_fs`` compilation =
280+
compilation
281+
|> getCompilation
282+
|> withLangVersionPreview
283+
|> verifyCompilation
284+
285+
// SOURCE=ForLoopUInt64.fs SCFLAGS="--optimize+" # ForLoopUInt64.fs --optimize+
286+
[<Theory; FileInlineData("ForLoopUInt64.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
287+
let ``ForLoopUInt64_fs`` compilation =
288+
compilation
289+
|> getCompilation
290+
|> withLangVersionPreview
291+
|> verifyCompilation
292+
293+
// SOURCE=ForLoopIntPtr.fs SCFLAGS="--optimize+" # ForLoopIntPtr.fs --optimize+
294+
[<Theory; FileInlineData("ForLoopIntPtr.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
295+
let ``ForLoopIntPtr_fs`` compilation =
296+
compilation
297+
|> getCompilation
298+
|> withLangVersionPreview
299+
|> verifyCompilation
300+
301+
// SOURCE=ForLoopUIntPtr.fs SCFLAGS="--optimize+" # ForLoopUIntPtr.fs --optimize+
302+
[<Theory; FileInlineData("ForLoopUIntPtr.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
303+
let ``ForLoopUIntPtr_fs`` compilation =
304+
compilation
305+
|> getCompilation
306+
|> withLangVersionPreview
307+
|> verifyCompilation
308+
309+
// SOURCE=ForLoopBigInt.fs SCFLAGS="--optimize+" # ForLoopBigInt.fs --optimize+
310+
[<Theory; FileInlineData("ForLoopBigInt.fs", Realsig=BooleanOptions.True, Optimize=BooleanOptions.True)>]
311+
let ``ForLoopBigInt_fs`` compilation =
312+
compilation
313+
|> getCompilation
314+
|> withLangVersionPreview
315+
|> verifyCompilation
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0I
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10I to 1I do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1I to 10I do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10I do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1I to finish do
18+
c <- n
19+
20+
let annotatedStart (start: bigint) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: bigint) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1I downto 10I do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10I downto 1I do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1I do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10I downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: bigint) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: bigint) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopBigInt.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,428
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = 0uy
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10uy to 1uy do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1uy to 10uy do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10uy do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1uy to finish do
18+
c <- n
19+
20+
let annotatedStart (start: byte) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: byte) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+405
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = '\000'
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 'z' to 'a' do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 'a' to 'z' do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 'z' do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 'a' to finish do
18+
c <- n
19+
20+
let annotatedStart (start: char) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: char) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopChar.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+405
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0.0m
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10.0m to 1.0m do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1.0m to 10.0m do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10.0m do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1.0m to finish do
18+
c <- n
19+
20+
let annotatedStart (start: decimal) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: decimal) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1.0m downto 10.0m do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10.0m downto 1.0m do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1.0m do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10.0m downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: decimal) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: decimal) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopDecimal.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,088
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0.0f
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10.0f to 1.0f do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1.0f to 10.0f do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10.0f do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1.0f to finish do
18+
c <- n
19+
20+
let annotatedStart (start: float32) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: float32) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1.0f downto 10.0f do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10.0f downto 1.0f do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1.0f do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10.0f downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: float32) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: float32) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopFloat32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,088
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0.0
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10.0 to 1.0 do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1.0 to 10.0 do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10.0 do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1.0 to finish do
18+
c <- n
19+
20+
let annotatedStart (start: float) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: float) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1.0 downto 10.0 do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10.0 downto 1.0 do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1.0 do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10.0 downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: float) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: float) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopFloat64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,088
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0s
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10s to 1s do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1s to 10s do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10s do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1s to finish do
18+
c <- n
19+
20+
let annotatedStart (start: int16) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: int16) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1s downto 10s do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10s downto 1s do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1s do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10s downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: int16) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: int16) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+705
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
open System.Runtime.CompilerServices
2+
3+
let mutable c = 0
4+
5+
[<MethodImpl(MethodImplOptions.NoInlining)>]
6+
let f<'a> (x: 'a) = ignore x
7+
8+
[<MethodImpl(MethodImplOptions.NoInlining)>]
9+
let forceBoxing (x: obj) = ignore x
10+
11+
module Up =
12+
let constEmpty () =
13+
for n = 10 to 1 do
14+
c <- n
15+
16+
let constNonEmpty () =
17+
for n = 1 to 10 do
18+
c <- n
19+
20+
let constFinish start =
21+
for n = start to 10 do
22+
c <- n
23+
24+
let constStart finish =
25+
for n = 1 to finish do
26+
c <- n
27+
28+
let annotatedStart (start: int) finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
let annotatedFinish start (finish: int) =
33+
for n = start to finish do
34+
c <- n
35+
36+
let inferredStartAndFinish start finish =
37+
for n = start to finish do
38+
c <- n
39+
40+
let unconstrainedStartAndFinish start finish =
41+
for n = start to finish do
42+
f n
43+
44+
let boxedLoopVar start finish =
45+
for n = start to finish do
46+
forceBoxing n
47+
48+
module Down =
49+
let constEmpty () =
50+
for n = 1 downto 10 do
51+
c <- n
52+
53+
let constNonEmpty () =
54+
for n = 10 downto 1 do
55+
c <- n
56+
57+
let constFinish start =
58+
for n = start downto 1 do
59+
c <- n
60+
61+
let constStart finish =
62+
for n = 10 downto finish do
63+
c <- n
64+
65+
let annotatedStart (start: int) finish =
66+
for n = start downto finish do
67+
c <- n
68+
69+
let annotatedFinish start (finish: int) =
70+
for n = start downto finish do
71+
c <- n
72+
73+
let inferredStartAndFinish start finish =
74+
for n = start downto finish do
75+
c <- n
76+
77+
let unconstrainedStartAndFinish start finish =
78+
for n = start downto finish do
79+
f n
80+
81+
let boxedLoopVar start finish =
82+
for n = start downto finish do
83+
forceBoxing n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+658
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0L
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10L to 1L do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1L to 10L do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10L do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1L to finish do
18+
c <- n
19+
20+
let annotatedStart (start: int64) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: int64) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1L downto 10L do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10L downto 1L do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1L do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10L downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: int64) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: int64) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,088
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0n
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10n to 1n do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1n to 10n do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10n do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1n to finish do
18+
c <- n
19+
20+
let annotatedStart (start: nativeint) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: nativeint) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1n downto 10n do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10n downto 1n do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1n do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10n downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: nativeint) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: nativeint) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+1,618
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
let mutable c = 0y
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10y to 1y do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1y to 10y do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10y do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1y to finish do
18+
c <- n
19+
20+
let annotatedStart (start: sbyte) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: sbyte) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n
31+
32+
module Down =
33+
let constEmpty () =
34+
for n = 1y downto 10y do
35+
c <- n
36+
37+
let constNonEmpty () =
38+
for n = 10y downto 1y do
39+
c <- n
40+
41+
let constFinish start =
42+
for n = start downto 1y do
43+
c <- n
44+
45+
let constStart finish =
46+
for n = 10y downto finish do
47+
c <- n
48+
49+
let annotatedStart (start: sbyte) finish =
50+
for n = start downto finish do
51+
c <- n
52+
53+
let annotatedFinish start (finish: sbyte) =
54+
for n = start downto finish do
55+
c <- n
56+
57+
let inferredStartAndFinish start finish =
58+
for n = start downto finish do
59+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopSByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+705
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = 0us
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10us to 1us do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1us to 10us do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10us do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1us to finish do
18+
c <- n
19+
20+
let annotatedStart (start: uint16) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: uint16) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopUInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+405
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = 0u
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10u to 1u do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1u to 10u do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10u do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1u to finish do
18+
c <- n
19+
20+
let annotatedStart (start: uint) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: uint) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopUInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+428
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = 0UL
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10UL to 1UL do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1UL to 10UL do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10UL do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1UL to finish do
18+
c <- n
19+
20+
let annotatedStart (start: uint64) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: uint64) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopUInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+597
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
let mutable c = 0un
2+
3+
module Up =
4+
let constEmpty () =
5+
for n = 10un to 1un do
6+
c <- n
7+
8+
let constNonEmpty () =
9+
for n = 1un to 10un do
10+
c <- n
11+
12+
let constFinish start =
13+
for n = start to 10un do
14+
c <- n
15+
16+
let constStart finish =
17+
for n = 1un to finish do
18+
c <- n
19+
20+
let annotatedStart (start: unativeint) finish =
21+
for n = start to finish do
22+
c <- n
23+
24+
let annotatedFinish start (finish: unativeint) =
25+
for n = start to finish do
26+
c <- n
27+
28+
let inferredStartAndFinish start finish =
29+
for n = start to finish do
30+
c <- n

‎tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForLoopUIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl

+771
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.