OpenCores
URL https://opencores.org/ocsvn/theia_gpu/theia_gpu/trunk

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [beta_2.0/] [regressions/] [single_core/] [test1_out_of_order_1.vp] - Blame information for rev 218

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 218 diegovalve
#define Result R66
2
//The intention of this test is to excerisve various
3
//WAW and RAW conditions
4
 
5
vector v1,v2,v3,v4,v5,v6,v7,v8;
6
 
7
v1 = 0;
8
v2 = 10;
9
v3 = 20;
10
v4 = 30;
11
v5 = 1;
12
 
13
v6 = v3 / v2;   //v6 = 20/10 = 10
14
v2 = 0;
15
v3 = 0xbeef;
16
 
17
//Here v6 depends on the DIVIDER, ADD_STA0 has to wait
18
//ADD_0  ->  0000  |  DIV  |  0000aced0000aced0000aced | 000000000000000000000000
19
v6 = 0xACED;
20
 
21
//Here v6 depends on the last operation, which depends on the divider
22
//ADD_1  -> ADD_0  |  0000  |  000000000000000000000000 | 000000000000000000000000
23
v2 = v6 + v2;
24
 
25
 
26
//Here the multiplication depends on both Adders
27
//MUL    ->  ADD_1  |  ADD_0  |  000000000000000000000000 | 000000000000000000000000
28
v3 = v2 * v6;
29
v2 = 0x74CF5369;
30
if (v3 != v2)
31
{
32
        Result = v3 + R0;
33
        exit ;
34
}
35
 
36
 
37
Result = 0xaced;
38
exit ;
39
 
40
 
41
//It fails from here on... :(
42
 
43
//Here the square root depends on ADD 0 which depends MUL
44
// MUL  |  0000  |  0000beef0000beef0000beef | 000000000000000000000000
45
R60 = 4;
46
R60 = sqrt( scale( R60 ) );
47
 
48
v3 = unscale( R60 );
49
//This guy depends of SQRT
50
v4 = v3 + R0.xxx;
51
 
52
if (v4 != 2)
53
{
54
        Result = v4 + R0;
55
        exit ;
56
}
57
 
58
Result = 0xaced;
59
exit ;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.