Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-bmi.s
1 # Check 64bit BMI instructions
2
3         .allow_index_reg
4         .text
5 _start:
6
7 # Test for op r16, r/m16
8         tzcnt %ax,%bx
9         tzcnt (%rcx),%bx
10         tzcnt (%rcx),%r15w
11
12 # Test for op r32, r32, r/m32
13         andn %eax,%ebx,%esi
14         andn (%rcx),%ebx,%esi
15         andn %r9d,%r15d,%r10d
16         andn (%rcx),%r15d,%r10d
17
18 # Test for op r32, r/m32, r32
19         bextr %eax,%ebx,%esi
20         bextr %ebx,(%rcx),%esi
21         bextr %r9d,%r15d,%r10d
22         bextr %r9d,(%rcx),%r10d
23
24 # Test for op r32, r/m32
25         tzcnt %eax,%ebx
26         tzcnt (%rcx),%ebx
27         tzcnt (%rcx),%r15d
28         blsi %eax,%ebx
29         blsi (%rcx),%ebx
30         blsi (%rcx),%r15d
31         blsmsk %eax,%ebx
32         blsmsk (%rcx),%ebx
33         blsmsk (%rcx),%r15d
34         blsr %eax,%ebx
35         blsr (%rcx),%ebx
36         blsr (%rcx),%r15d
37
38 # Test for op r64, r64, r/m64
39         andn %rax,%rbx,%rsi
40         andn (%rcx),%rbx,%rsi
41         andn %r9,%r15,%r10
42         andn (%rcx),%r15,%r10
43
44 # Test for op r64, r/m64, r64
45         bextr %rax,%rbx,%rsi
46         bextr %rax,(%rcx),%rsi
47         bextr %r9,%r15,%r10
48         bextr %r9,(%rcx),%r10
49
50 # Test for op r64, r/m64
51         tzcnt %rax,%rbx
52         tzcnt (%rcx),%rbx
53         tzcnt %r9,%r15
54         tzcnt (%rcx),%r15
55         blsi %rax,%rbx
56         blsi (%rcx),%rbx
57         blsi %r9,%r15
58         blsi (%rcx),%r15
59         blsmsk %rax,%rbx
60         blsmsk (%rcx),%rbx
61         blsmsk %r9,%r15
62         blsmsk (%rcx),%r15
63         blsr %rax,%rbx
64         blsr (%rcx),%rbx
65         blsr %r9,%r15
66         blsr (%rcx),%r15
67
68         .intel_syntax noprefix
69
70 # Test for op r16, r/m16
71         tzcnt bx,ax
72         tzcnt bx,WORD PTR [rcx]
73         tzcnt r10w,WORD PTR [rcx]
74         tzcnt bx,[rcx]
75
76 # Test for op r32, r32, r/m32
77         andn esi,ebx,eax
78         andn esi,ebx,DWORD PTR [rcx]
79         andn r15d,r10d,r9d
80         andn r15d,r10d,DWORD PTR [rcx]
81         andn esi,ebx,[rcx]
82
83 # Test for op r32, r/m32, r32
84         bextr esi,ebx,eax
85         bextr esi,DWORD PTR [rcx],ebx
86         bextr r15d,r10d,r9d
87         bextr r15d,DWORD PTR [rcx],r9d
88         bextr esi,[rcx],ebx
89
90 # Test for op r32, r/m32
91         tzcnt ebx,eax
92         tzcnt ebx,DWORD PTR [rcx]
93         tzcnt r10d,DWORD PTR [rcx]
94         tzcnt ebx,[rcx]
95         blsi ebx,eax
96         blsi ebx,DWORD PTR [rcx]
97         blsi r10d,DWORD PTR [rcx]
98         blsi ebx,[rcx]
99         blsmsk ebx,eax
100         blsmsk ebx,DWORD PTR [rcx]
101         blsmsk r10d,DWORD PTR [rcx]
102         blsmsk ebx,[rcx]
103         blsr ebx,eax
104         blsr ebx,DWORD PTR [rcx]
105         blsr r10d,DWORD PTR [rcx]
106         blsr ebx,[rcx]
107
108 # Test for op r64, r64, r/m64
109         andn rsi,rbx,rax
110         andn rsi,rbx,QWORD PTR [rcx]
111         andn r10,r15,r9
112         andn r10,r15,QWORD PTR [rcx]
113         andn rsi,rbx,[rcx]
114
115 # Test for op r64, r/m64, r64
116         bextr rsi,rbx,rax
117         bextr rsi,QWORD PTR [rcx],rax
118         bextr r10,r15,r9
119         bextr r10,QWORD PTR [rcx],r9
120         bextr rsi,[rcx],rax
121
122 # Test for op r64, r/m64
123         tzcnt rbx,rax
124         tzcnt rbx,QWORD PTR [rcx]
125         tzcnt r15,r9
126         tzcnt r15,QWORD PTR [rcx]
127         tzcnt rbx,[rcx]
128         blsi rbx,rax
129         blsi rbx,QWORD PTR [rcx]
130         blsi r15,r9
131         blsi r15,QWORD PTR [rcx]
132         blsi rbx,[rcx]
133         blsmsk rbx,rax
134         blsmsk rbx,QWORD PTR [rcx]
135         blsmsk r15,r9
136         blsmsk r15,QWORD PTR [rcx]
137         blsmsk rbx,[rcx]
138         blsr rbx,rax
139         blsr rbx,QWORD PTR [rcx]
140         blsr r15,r9
141         blsr r15,QWORD PTR [rcx]
142         blsr rbx,[rcx]