]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/i386/optimize-2.s
29399ae84731d5df2cfbe94b5249697544e5f75e
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / i386 / optimize-2.s
1 # Check instructions with optimized encoding
2
3 .allow_index_reg
4 .text
5 _start:
6 testl $0x7f, %eax
7 testw $0x7f, %ax
8 testb $0x7f, %al
9 test $0x7f, %ebx
10 test $0x7f, %bx
11 test $0x7f, %bl
12 test $0x7f, %edi
13 test $0x7f, %di
14
15 and %cl, %cl
16 and %dx, %dx
17 and %ebx, %ebx
18
19 or %ah, %ah
20 or %bp, %bp
21 or %esi, %esi
22
23 lock xchg %ecx, (%edx)
24 lock xchg (%ecx), %edx
25
26 vandnpd %zmm1, %zmm1, %zmm5
27
28 vmovdqa32 %xmm1, %xmm2
29 vmovdqa64 %xmm1, %xmm2
30 vmovdqu8 %xmm1, %xmm2
31 vmovdqu16 %xmm1, %xmm2
32 vmovdqu32 %xmm1, %xmm2
33 vmovdqu64 %xmm1, %xmm2
34
35 vmovdqa32 127(%eax), %xmm2
36 vmovdqa64 127(%eax), %xmm2
37 vmovdqu8 127(%eax), %xmm2
38 vmovdqu16 127(%eax), %xmm2
39 vmovdqu32 127(%eax), %xmm2
40 vmovdqu64 127(%eax), %xmm2
41
42 vmovdqa32 %xmm1, 128(%eax)
43 vmovdqa64 %xmm1, 128(%eax)
44 vmovdqu8 %xmm1, 128(%eax)
45 vmovdqu16 %xmm1, 128(%eax)
46 vmovdqu32 %xmm1, 128(%eax)
47 vmovdqu64 %xmm1, 128(%eax)
48
49 vmovdqa32 %ymm1, %ymm2
50 vmovdqa64 %ymm1, %ymm2
51 vmovdqu8 %ymm1, %ymm2
52 vmovdqu16 %ymm1, %ymm2
53 vmovdqu32 %ymm1, %ymm2
54 vmovdqu64 %ymm1, %ymm2
55
56 vmovdqa32 127(%eax), %ymm2
57 vmovdqa64 127(%eax), %ymm2
58 vmovdqu8 127(%eax), %ymm2
59 vmovdqu16 127(%eax), %ymm2
60 vmovdqu32 127(%eax), %ymm2
61 vmovdqu64 127(%eax), %ymm2
62
63 vmovdqa32 %ymm1, 128(%eax)
64 vmovdqa64 %ymm1, 128(%eax)
65 vmovdqu8 %ymm1, 128(%eax)
66 vmovdqu16 %ymm1, 128(%eax)
67 vmovdqu32 %ymm1, 128(%eax)
68 vmovdqu64 %ymm1, 128(%eax)
69
70 vmovdqa32 %zmm1, %zmm2
71 vmovdqa64 %zmm1, %zmm2
72 vmovdqu8 %zmm1, %zmm2
73 vmovdqu16 %zmm1, %zmm2
74 vmovdqu32 %zmm1, %zmm2
75 vmovdqu64 %zmm1, %zmm2
76
77 {evex} vmovdqa32 %ymm1, %ymm2
78 {evex} vmovdqa64 %ymm1, %ymm2
79 {evex} vmovdqu8 %xmm1, %xmm2
80 {evex} vmovdqu16 %xmm1, %xmm2
81 {evex} vmovdqu32 %xmm1, %xmm2
82 {evex} vmovdqu64 %xmm1, %xmm2
83
84 vmovdqa32 %ymm1, %ymm2{%k1}
85 vmovdqa64 %ymm1, %ymm2{%k1}
86 vmovdqu8 %xmm1, %xmm2{%k1}
87 vmovdqu16 %xmm1, %xmm2{%k1}
88 vmovdqu32 %xmm1, %xmm2{%k1}
89 vmovdqu64 %xmm1, %xmm2{%k1}
90
91 vmovdqa32 (%eax), %ymm2{%k1}
92 vmovdqa64 (%eax), %ymm2{%k1}
93 vmovdqu8 (%eax), %xmm2{%k1}
94 vmovdqu16 (%eax), %xmm2{%k1}
95 vmovdqu32 (%eax), %xmm2{%k1}
96 vmovdqu64 (%eax), %xmm2{%k1}
97
98 vmovdqa32 %ymm1, (%eax){%k1}
99 vmovdqa64 %ymm1, (%eax){%k1}
100 vmovdqu8 %xmm1, (%eax){%k1}
101 vmovdqu16 %xmm1, (%eax){%k1}
102 vmovdqu32 %xmm1, (%eax){%k1}
103 vmovdqu64 %xmm1, (%eax){%k1}
104
105 vmovdqa32 %xmm1, %xmm2{%k1}{z}
106 vmovdqa64 %xmm1, %xmm2{%k1}{z}
107 vmovdqu8 %xmm1, %xmm2{%k1}{z}
108 vmovdqu16 %xmm1, %xmm2{%k1}{z}
109 vmovdqu32 %xmm1, %xmm2{%k1}{z}
110 vmovdqu64 %xmm1, %xmm2{%k1}{z}
111
112 vpandd %xmm2, %xmm3, %xmm4
113 vpandq %xmm2, %xmm3, %xmm4
114 vpandnd %xmm2, %xmm3, %xmm4
115 vpandnq %xmm2, %xmm3, %xmm4
116 vpord %xmm2, %xmm3, %xmm4
117 vporq %xmm2, %xmm3, %xmm4
118 vpxord %xmm2, %xmm3, %xmm4
119 vpxorq %xmm2, %xmm3, %xmm4
120
121 vpandd %ymm2, %ymm3, %ymm4
122 vpandq %ymm2, %ymm3, %ymm4
123 vpandnd %ymm2, %ymm3, %ymm4
124 vpandnq %ymm2, %ymm3, %ymm4
125 vpord %ymm2, %ymm3, %ymm4
126 vporq %ymm2, %ymm3, %ymm4
127 vpxord %ymm2, %ymm3, %ymm4
128 vpxorq %ymm2, %ymm3, %ymm4
129
130 vpandd 112(%eax), %xmm2, %xmm3
131 vpandq 112(%eax), %xmm2, %xmm3
132 vpandnd 112(%eax), %xmm2, %xmm3
133 vpandnq 112(%eax), %xmm2, %xmm3
134 vpord 112(%eax), %xmm2, %xmm3
135 vporq 112(%eax), %xmm2, %xmm3
136 vpxord 112(%eax), %xmm2, %xmm3
137 vpxorq 112(%eax), %xmm2, %xmm3
138
139 vpandd 128(%eax), %xmm2, %xmm3
140 vpandq 128(%eax), %xmm2, %xmm3
141 vpandnd 128(%eax), %xmm2, %xmm3
142 vpandnq 128(%eax), %xmm2, %xmm3
143 vpord 128(%eax), %xmm2, %xmm3
144 vporq 128(%eax), %xmm2, %xmm3
145 vpxord 128(%eax), %xmm2, %xmm3
146 vpxorq 128(%eax), %xmm2, %xmm3
147
148 vpandd 96(%eax), %ymm2, %ymm3
149 vpandq 96(%eax), %ymm2, %ymm3
150 vpandnd 96(%eax), %ymm2, %ymm3
151 vpandnq 96(%eax), %ymm2, %ymm3
152 vpord 96(%eax), %ymm2, %ymm3
153 vporq 96(%eax), %ymm2, %ymm3
154 vpxord 96(%eax), %ymm2, %ymm3
155 vpxorq 96(%eax), %ymm2, %ymm3
156
157 vpandd 128(%eax), %ymm2, %ymm3
158 vpandq 128(%eax), %ymm2, %ymm3
159 vpandnd 128(%eax), %ymm2, %ymm3
160 vpandnq 128(%eax), %ymm2, %ymm3
161 vpord 128(%eax), %ymm2, %ymm3
162 vporq 128(%eax), %ymm2, %ymm3
163 vpxord 128(%eax), %ymm2, %ymm3
164 vpxorq 128(%eax), %ymm2, %ymm3
165
166 vpandd %xmm2, %xmm3, %xmm4{%k5}
167 vpandq %ymm2, %ymm3, %ymm4{%k5}
168 vpandnd %ymm2, %ymm3, %ymm4{%k5}
169 vpandnq %xmm2, %xmm3, %xmm4{%k5}
170 vpord %xmm2, %xmm3, %xmm4{%k5}
171 vporq %ymm2, %ymm3, %ymm4{%k5}
172 vpxord %ymm2, %ymm3, %ymm4{%k5}
173 vpxorq %xmm2, %xmm3, %xmm4{%k5}
174
175 vpandd (%eax){1to8}, %ymm2, %ymm3
176 vpandq (%eax){1to2}, %xmm2, %xmm3
177 vpandnd (%eax){1to4}, %xmm2, %xmm3
178 vpandnq (%eax){1to4}, %ymm2, %ymm3
179 vpord (%eax){1to8}, %ymm2, %ymm3
180 vporq (%eax){1to2}, %xmm2, %xmm3
181 vpxord (%eax){1to4}, %xmm2, %xmm3
182 vpxorq (%eax){1to4}, %ymm2, %ymm3
183
184 pcmpeqq %xmm2, %xmm2
185 vpcmpeqq %xmm2, %xmm2, %xmm0
186 vpcmpeqq %ymm2, %ymm2, %ymm0
187
188 vpbroadcastq %xmm2, %xmm0