Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / benchmark / regvar.cs
1 //
2 // We get stuff like:
3 //  48: 8b c3                   mov    eax,ebx
4 //  4a: 8b cf                   mov    ecx,edi
5 //  4c: 0b c1                   or     eax,ecx
6 //  4e: 8b d8                   mov    ebx,eax
7 //
8
9 using System;
10 class T {
11         static void Main () {
12                 int i = Environment.TickCount;
13                 new T ().X ();
14                 Console.WriteLine (Environment.TickCount - i);
15         }
16         
17         void X () {
18                 int a = 0, b = 0, c = 0, d = 0;
19                 for (int i = 0; i < 50000000; i ++) {
20                         
21                         
22                         a |= b;
23                         b |= c;
24                         c |= d;
25                         b |= d;
26                         
27                         a ^= b;
28                         b ^= c;
29                         c ^= d;
30                         b ^= d;
31                         
32                         a &= b;
33                         b &= c;
34                         c &= d;
35                         b &= d;
36                         
37                         a += b;
38                         b += c;
39                         c += d;
40                         b += d;
41                 }
42         }
43 }