i386: Check for reserved VEX.vvvv and EVEX.vvvv
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-bmi2.s
1 # Check 64bit BMI2 instructions
2
3         .allow_index_reg
4         .text
5 _start:
6
7 # Test for op r32, r/m32, imm8
8         rorx $7,%eax,%ebx
9         rorx $7,(%rcx),%ebx
10         rorx $7,%r9d,%r15d
11         rorx $7,(%rcx),%r15d
12
13 # Test for op r32, r32, r/m32
14         mulx %eax,%ebx,%esi
15         mulx (%rcx),%ebx,%esi
16         mulx %r9d,%r15d,%r10d
17         mulx (%rcx),%r15d,%r10d
18         pdep %eax,%ebx,%esi
19         pdep (%rcx),%ebx,%esi
20         pdep %r9d,%r15d,%r10d
21         pdep (%rcx),%r15d,%r10d
22         pext %eax,%ebx,%esi
23         pext (%rcx),%ebx,%esi
24         pext %r9d,%r15d,%r10d
25         pext (%rcx),%r15d,%r10d
26
27 # Test for op r32, r/m32, r32
28         bzhi %eax,%ebx,%esi
29         bzhi %ebx,(%rcx),%esi
30         bzhi %r9d,%r15d,%r10d
31         bzhi %r9d,(%rcx),%r10d
32         sarx %eax,%ebx,%esi
33         sarx %ebx,(%rcx),%esi
34         sarx %r9d,%r15d,%r10d
35         sarx %r9d,(%rcx),%r10d
36         shlx %eax,%ebx,%esi
37         shlx %ebx,(%rcx),%esi
38         shlx %r9d,%r15d,%r10d
39         shlx %r9d,(%rcx),%r10d
40         shrx %eax,%ebx,%esi
41         shrx %ebx,(%rcx),%esi
42         shrx %r9d,%r15d,%r10d
43         shrx %r9d,(%rcx),%r10d
44
45 # Test for op r64, r/m64, imm8
46         rorx $7,%rax,%rbx
47         rorx $7,(%rcx),%rbx
48         rorx $7,%r9,%r15
49         rorx $7,(%rcx),%r15
50
51 # Test for op r64, r64, r/m64
52         mulx %rax,%rbx,%rsi
53         mulx (%rcx),%rbx,%rsi
54         mulx %r9,%r15,%r10
55         mulx (%rcx),%r15,%r10
56         pdep %rax,%rbx,%rsi
57         pdep (%rcx),%rbx,%rsi
58         pdep %r9,%r15,%r10
59         pdep (%rcx),%r15,%r10
60         pext %rax,%rbx,%rsi
61         pext (%rcx),%rbx,%rsi
62         pext %r9,%r15,%r10
63         pext (%rcx),%r15,%r10
64
65 # Test for op r64, r/m64, r64
66         bzhi %rax,%rbx,%rsi
67         bzhi %rax,(%rcx),%rsi
68         bzhi %r9,%r15,%r10
69         bzhi %r9,(%rcx),%r10
70         sarx %rax,%rbx,%rsi
71         sarx %rax,(%rcx),%rsi
72         sarx %r9,%r15,%r10
73         sarx %r9,(%rcx),%r10
74         shlx %rax,%rbx,%rsi
75         shlx %rax,(%rcx),%rsi
76         shlx %r9,%r15,%r10
77         shlx %r9,(%rcx),%r10
78         shrx %rax,%rbx,%rsi
79         shrx %rax,(%rcx),%rsi
80         shrx %r9,%r15,%r10
81         shrx %r9,(%rcx),%r10
82
83         .intel_syntax noprefix
84
85 # Test for op r32, r/m32, imm8
86         rorx ebx,eax,7
87         rorx ebx,DWORD PTR [rcx],7
88         rorx r10d,r9d,7
89         rorx r10d,DWORD PTR [rcx],7
90         rorx ebx,[rcx],7
91
92 # Test for op r32, r32, r/m32
93         mulx esi,ebx,eax
94         mulx esi,ebx,DWORD PTR [rcx]
95         mulx r15d,r10d,r9d
96         mulx r15d,r10d,DWORD PTR [rcx]
97         mulx esi,ebx,[rcx]
98         pdep esi,ebx,eax
99         pdep esi,ebx,DWORD PTR [rcx]
100         pdep r15d,r10d,r9d
101         pdep r15d,r10d,DWORD PTR [rcx]
102         pdep esi,ebx,[rcx]
103         pext esi,ebx,eax
104         pext esi,ebx,DWORD PTR [rcx]
105         pext r15d,r10d,r9d
106         pext r15d,r10d,DWORD PTR [rcx]
107         pext esi,ebx,[rcx]
108
109 # Test for op r32, r/m32, r32
110         bzhi esi,ebx,eax
111         bzhi esi,DWORD PTR [rcx],ebx
112         bzhi r15d,r10d,r9d
113         bzhi r15d,DWORD PTR [rcx],r9d
114         bzhi esi,[rcx],ebx
115         sarx esi,ebx,eax
116         sarx esi,DWORD PTR [rcx],ebx
117         sarx r15d,r10d,r9d
118         sarx r15d,DWORD PTR [rcx],r9d
119         sarx esi,[rcx],ebx
120         shlx esi,ebx,eax
121         shlx esi,DWORD PTR [rcx],ebx
122         shlx r15d,r10d,r9d
123         shlx r15d,DWORD PTR [rcx],r9d
124         shlx esi,[rcx],ebx
125         shrx esi,ebx,eax
126         shrx esi,DWORD PTR [rcx],ebx
127         shrx r15d,r10d,r9d
128         shrx r15d,DWORD PTR [rcx],r9d
129         shrx esi,[rcx],ebx
130
131 # Test for op r64, r/m64, imm8
132         rorx rbx,rax,7
133         rorx rbx,QWORD PTR [rcx],7
134         rorx r15,r9,7
135         rorx r15,QWORD PTR [rcx],7
136         rorx rbx,[rcx],7
137
138 # Test for op r64, r64, r/m64
139         mulx rsi,rbx,rax
140         mulx rsi,rbx,QWORD PTR [rcx]
141         mulx r10,r15,r9
142         mulx r10,r15,QWORD PTR [rcx]
143         mulx rsi,rbx,[rcx]
144         pdep rsi,rbx,rax
145         pdep rsi,rbx,QWORD PTR [rcx]
146         pdep r10,r15,r9
147         pdep r10,r15,QWORD PTR [rcx]
148         pdep rsi,rbx,[rcx]
149         pext rsi,rbx,rax
150         pext rsi,rbx,QWORD PTR [rcx]
151         pext r10,r15,r9
152         pext r10,r15,QWORD PTR [rcx]
153         pext rsi,rbx,[rcx]
154
155 # Test for op r64, r/m64, r64
156         bzhi rsi,rbx,rax
157         bzhi rsi,QWORD PTR [rcx],rax
158         bzhi r10,r15,r9
159         bzhi r10,QWORD PTR [rcx],r9
160         bzhi rsi,[rcx],rax
161         sarx rsi,rbx,rax
162         sarx rsi,QWORD PTR [rcx],rax
163         sarx r10,r15,r9
164         sarx r10,QWORD PTR [rcx],r9
165         sarx rsi,[rcx],rax
166         shlx rsi,rbx,rax
167         shlx rsi,QWORD PTR [rcx],rax
168         shlx r10,r15,r9
169         shlx r10,QWORD PTR [rcx],r9
170         shlx rsi,[rcx],rax
171         shrx rsi,rbx,rax
172         shrx rsi,QWORD PTR [rcx],rax
173         shrx r10,r15,r9
174         shrx r10,QWORD PTR [rcx],r9
175         shrx rsi,[rcx],rax