Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / ia64 / dv-imply.s
1 //      
2 // Test various implies relations       
3 //      
4 .text
5 // User-supplied hint   
6         .pred.rel.imply p1, p2
7 (p1)    mov             r4 = 2
8 (p2)    br.cond.sptk            L
9         mov             r4 = 7
10         rfi     
11         
12 // Symmetric to previous example
13         .pred.rel.imply p1, p2
14         mov             r4 = 2
15 (p2)    br.cond.sptk    L
16 (p1)    mov             r4 = 7  
17         rfi
18
19 // Verify that the implies relationship caused by the unconditional compare 
20 // prevents RAW on r4.  
21 (p3)    cmp.eq.unc      p1, p2 = r1, r2;;       // p1,p2 imply p3
22 (p1)    mov             r4 = 2
23 (p3)    br.cond.sptk    L       
24         mov             r4 = 7
25         rfi
26         
27 // An instance of cmp.rel.or should not affect an implies relation.
28 (p3)    cmp.eq.unc      p1, p2 = r1, r2         // p1,p2 imply p3
29         cmp.eq.or       p3, p4 = r5, r6;;       // doesn't affect implies rel
30 (p1)    mov             r4 = 2
31 (p3)    br.cond.sptk    L       
32         mov             r4 = 7
33         rfi
34         
35 // An instance of cmp.rel.and only affects imply targets
36         .pred.rel.imply p1,p3
37         cmp.ne.and      p1, p2 = r5, r6         // doesn't affect imply source
38 (p1)    mov             r4 = 2
39 (p3)    br.cond.sptk    L       
40         mov             r4 = 7
41         rfi
42         
43 // FIXME -- add tests for and.orcm and or.andcm 
44 L: