File tree Expand file tree Collapse file tree 2 files changed +30
-69
lines changed Expand file tree Collapse file tree 2 files changed +30
-69
lines changed Original file line number Diff line number Diff line change @@ -6,78 +6,39 @@ import std.digest.md;
6
6
7
7
static immutable VLEN = 8 ;
8
8
9
- version (LDC ){
10
- import core.simd ;
11
- alias Vec = double8;
12
-
13
- pragma (inline, true ):
14
- ubyte mbrot8 (Vec cr, double civ) {
15
- immutable Vec ci = civ;
16
- Vec zr = 0.0 ;
17
- Vec zi = 0.0 ;
18
- Vec tr = 0.0 ;
19
- Vec ti = 0.0 ;
20
- Vec absz = 0.0 ;
21
- foreach (l; 0 .. 10 ) {
22
- foreach (k; 0 .. 5 ) {
23
- zi = (zr + zr) * zi + ci;
24
- zr = tr - ti + cr;
25
- tr = zr * zr;
26
- ti = zi * zi;
27
- }
28
- absz = tr + ti;
29
- bool terminate = true ;
30
- foreach (i; 0 .. 8 )
31
- if (absz[i] <= 4.0 ) {
32
- terminate = false ;
33
- break ;
34
- }
35
- if (terminate)
36
- return 0u ;
37
- }
38
- ubyte accu;
39
- foreach (i; 0 .. VLEN )
40
- if (absz[i] <= 4.0 ) {
41
- accu |= 0x80 >> i;
42
- }
43
- return accu;
44
- }
45
- }
46
- else {
47
- alias Vec = double [8 ];
9
+ alias Vec = double [8 ];
48
10
49
- pragma (inline, true ):
50
- ubyte mbrot8 (Vec cr, double civ) {
51
- immutable Vec ci = civ;
52
- Vec zr = 0.0 ;
53
- Vec zi = 0.0 ;
54
- Vec tr = 0.0 ;
55
- Vec ti = 0.0 ;
56
- Vec absz = 0.0 ;
57
- foreach (l; 0 .. 10 ) {
58
- foreach (k; 0 .. 5 ) {
59
- zi[] = (zr[] + zr[]) * zi[] + ci[];
60
- zr[] = tr[] - ti[] + cr[];
61
- tr[] = zr[] * zr[];
62
- ti[] = zi[] * zi[];
63
- }
64
- absz[] = tr[] + ti[];
65
- bool terminate = true ;
66
- foreach (i; 0 .. 8 )
67
- if (absz[i] <= 4.0 ) {
68
- terminate = false ;
69
- break ;
70
- }
71
- if (terminate)
72
- return 0u ;
11
+ pragma (inline, true ):
12
+ ubyte mbrot8 (Vec cr, double civ) {
13
+ immutable Vec ci = civ;
14
+ Vec zr = 0.0 ;
15
+ Vec zi = 0.0 ;
16
+ Vec tr = 0.0 ;
17
+ Vec ti = 0.0 ;
18
+ Vec absz = 0.0 ;
19
+ foreach (l; 0 .. 10 ) {
20
+ foreach (k; 0 .. 5 ) {
21
+ zi[] = (zr[] + zr[]) * zi[] + ci[];
22
+ zr[] = tr[] - ti[] + cr[];
23
+ tr[] = zr[] * zr[];
24
+ ti[] = zi[] * zi[];
73
25
}
74
- ubyte accu;
75
- foreach (i; 0 .. VLEN )
26
+ absz[] = tr[] + ti[];
27
+ bool terminate = true ;
28
+ foreach (i; 0 .. 8 )
76
29
if (absz[i] <= 4.0 ) {
77
- accu |= 0x80 >> i;
30
+ terminate = false ;
31
+ break ;
78
32
}
79
- return accu;
33
+ if (terminate)
34
+ return 0u ;
80
35
}
36
+ ubyte accu;
37
+ foreach (i; 0 .. VLEN )
38
+ if (absz[i] <= 4.0 ) {
39
+ accu |= 0x80 >> i;
40
+ }
41
+ return accu;
81
42
}
82
43
83
44
void main (string [] args) {
Original file line number Diff line number Diff line change 9
9
"name" : " app" ,
10
10
"targetPath" : " out" ,
11
11
"dflags-dmd" : [" -mcpu=avx2" ],
12
- "dflags-ldc2 " : [" --march =broadwell" ]
13
- }
12
+ "dflags-ldc " : [" -mattr=+avx2 " , " -mcpu =broadwell" ]
13
+ }
You can’t perform that action at this time.
0 commit comments