c84840ceddd7eb615f88b6396fa876394b1addc8
[external/binutils.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         vandnpd %zmm1, %zmm1, %zmm5
16
17         vmovdqa32       %xmm1, %xmm2
18         vmovdqa64       %xmm1, %xmm2
19         vmovdqu8        %xmm1, %xmm2
20         vmovdqu16       %xmm1, %xmm2
21         vmovdqu32       %xmm1, %xmm2
22         vmovdqu64       %xmm1, %xmm2
23
24         vmovdqa32       127(%eax), %xmm2
25         vmovdqa64       127(%eax), %xmm2
26         vmovdqu8        127(%eax), %xmm2
27         vmovdqu16       127(%eax), %xmm2
28         vmovdqu32       127(%eax), %xmm2
29         vmovdqu64       127(%eax), %xmm2
30
31         vmovdqa32       %xmm1, 128(%eax)
32         vmovdqa64       %xmm1, 128(%eax)
33         vmovdqu8        %xmm1, 128(%eax)
34         vmovdqu16       %xmm1, 128(%eax)
35         vmovdqu32       %xmm1, 128(%eax)
36         vmovdqu64       %xmm1, 128(%eax)
37
38         vmovdqa32       %ymm1, %ymm2
39         vmovdqa64       %ymm1, %ymm2
40         vmovdqu8        %ymm1, %ymm2
41         vmovdqu16       %ymm1, %ymm2
42         vmovdqu32       %ymm1, %ymm2
43         vmovdqu64       %ymm1, %ymm2
44
45         vmovdqa32       127(%eax), %ymm2
46         vmovdqa64       127(%eax), %ymm2
47         vmovdqu8        127(%eax), %ymm2
48         vmovdqu16       127(%eax), %ymm2
49         vmovdqu32       127(%eax), %ymm2
50         vmovdqu64       127(%eax), %ymm2
51
52         vmovdqa32       %ymm1, 128(%eax)
53         vmovdqa64       %ymm1, 128(%eax)
54         vmovdqu8        %ymm1, 128(%eax)
55         vmovdqu16       %ymm1, 128(%eax)
56         vmovdqu32       %ymm1, 128(%eax)
57         vmovdqu64       %ymm1, 128(%eax)
58
59         vmovdqa32       %zmm1, %zmm2
60         vmovdqa64       %zmm1, %zmm2
61         vmovdqu8        %zmm1, %zmm2
62         vmovdqu16       %zmm1, %zmm2
63         vmovdqu32       %zmm1, %zmm2
64         vmovdqu64       %zmm1, %zmm2
65
66         {evex} vmovdqa32        %ymm1, %ymm2
67         {evex} vmovdqa64        %ymm1, %ymm2
68         {evex} vmovdqu8         %xmm1, %xmm2
69         {evex} vmovdqu16        %xmm1, %xmm2
70         {evex} vmovdqu32        %xmm1, %xmm2
71         {evex} vmovdqu64        %xmm1, %xmm2
72
73         vmovdqa32       %ymm1, %ymm2{%k1}
74         vmovdqa64       %ymm1, %ymm2{%k1}
75         vmovdqu8        %xmm1, %xmm2{%k1}
76         vmovdqu16       %xmm1, %xmm2{%k1}
77         vmovdqu32       %xmm1, %xmm2{%k1}
78         vmovdqu64       %xmm1, %xmm2{%k1}
79
80         vmovdqa32       (%eax), %ymm2{%k1}
81         vmovdqa64       (%eax), %ymm2{%k1}
82         vmovdqu8        (%eax), %xmm2{%k1}
83         vmovdqu16       (%eax), %xmm2{%k1}
84         vmovdqu32       (%eax), %xmm2{%k1}
85         vmovdqu64       (%eax), %xmm2{%k1}
86
87         vmovdqa32       %ymm1, (%eax){%k1}
88         vmovdqa64       %ymm1, (%eax){%k1}
89         vmovdqu8        %xmm1, (%eax){%k1}
90         vmovdqu16       %xmm1, (%eax){%k1}
91         vmovdqu32       %xmm1, (%eax){%k1}
92         vmovdqu64       %xmm1, (%eax){%k1}
93
94         vmovdqa32       %xmm1, %xmm2{%k1}{z}
95         vmovdqa64       %xmm1, %xmm2{%k1}{z}
96         vmovdqu8        %xmm1, %xmm2{%k1}{z}
97         vmovdqu16       %xmm1, %xmm2{%k1}{z}
98         vmovdqu32       %xmm1, %xmm2{%k1}{z}
99         vmovdqu64       %xmm1, %xmm2{%k1}{z}
100
101         vpandd          %xmm2, %xmm3, %xmm4
102         vpandq          %xmm2, %xmm3, %xmm4
103         vpandnd         %xmm2, %xmm3, %xmm4
104         vpandnq         %xmm2, %xmm3, %xmm4
105         vpord           %xmm2, %xmm3, %xmm4
106         vporq           %xmm2, %xmm3, %xmm4
107         vpxord          %xmm2, %xmm3, %xmm4
108         vpxorq          %xmm2, %xmm3, %xmm4
109
110         vpandd          %ymm2, %ymm3, %ymm4
111         vpandq          %ymm2, %ymm3, %ymm4
112         vpandnd         %ymm2, %ymm3, %ymm4
113         vpandnq         %ymm2, %ymm3, %ymm4
114         vpord           %ymm2, %ymm3, %ymm4
115         vporq           %ymm2, %ymm3, %ymm4
116         vpxord          %ymm2, %ymm3, %ymm4
117         vpxorq          %ymm2, %ymm3, %ymm4
118
119         vpandd          112(%eax), %xmm2, %xmm3
120         vpandq          112(%eax), %xmm2, %xmm3
121         vpandnd         112(%eax), %xmm2, %xmm3
122         vpandnq         112(%eax), %xmm2, %xmm3
123         vpord           112(%eax), %xmm2, %xmm3
124         vporq           112(%eax), %xmm2, %xmm3
125         vpxord          112(%eax), %xmm2, %xmm3
126         vpxorq          112(%eax), %xmm2, %xmm3
127
128         vpandd          128(%eax), %xmm2, %xmm3
129         vpandq          128(%eax), %xmm2, %xmm3
130         vpandnd         128(%eax), %xmm2, %xmm3
131         vpandnq         128(%eax), %xmm2, %xmm3
132         vpord           128(%eax), %xmm2, %xmm3
133         vporq           128(%eax), %xmm2, %xmm3
134         vpxord          128(%eax), %xmm2, %xmm3
135         vpxorq          128(%eax), %xmm2, %xmm3
136
137         vpandd          96(%eax), %ymm2, %ymm3
138         vpandq          96(%eax), %ymm2, %ymm3
139         vpandnd         96(%eax), %ymm2, %ymm3
140         vpandnq         96(%eax), %ymm2, %ymm3
141         vpord           96(%eax), %ymm2, %ymm3
142         vporq           96(%eax), %ymm2, %ymm3
143         vpxord          96(%eax), %ymm2, %ymm3
144         vpxorq          96(%eax), %ymm2, %ymm3
145
146         vpandd          128(%eax), %ymm2, %ymm3
147         vpandq          128(%eax), %ymm2, %ymm3
148         vpandnd         128(%eax), %ymm2, %ymm3
149         vpandnq         128(%eax), %ymm2, %ymm3
150         vpord           128(%eax), %ymm2, %ymm3
151         vporq           128(%eax), %ymm2, %ymm3
152         vpxord          128(%eax), %ymm2, %ymm3
153         vpxorq          128(%eax), %ymm2, %ymm3
154
155         vpandd          %xmm2, %xmm3, %xmm4{%k5}
156         vpandq          %ymm2, %ymm3, %ymm4{%k5}
157         vpandnd         %ymm2, %ymm3, %ymm4{%k5}
158         vpandnq         %xmm2, %xmm3, %xmm4{%k5}
159         vpord           %xmm2, %xmm3, %xmm4{%k5}
160         vporq           %ymm2, %ymm3, %ymm4{%k5}
161         vpxord          %ymm2, %ymm3, %ymm4{%k5}
162         vpxorq          %xmm2, %xmm3, %xmm4{%k5}
163
164         vpandd          (%eax){1to8}, %ymm2, %ymm3
165         vpandq          (%eax){1to2}, %xmm2, %xmm3
166         vpandnd         (%eax){1to4}, %xmm2, %xmm3
167         vpandnq         (%eax){1to4}, %ymm2, %ymm3
168         vpord           (%eax){1to8}, %ymm2, %ymm3
169         vporq           (%eax){1to2}, %xmm2, %xmm3
170         vpxord          (%eax){1to4}, %xmm2, %xmm3
171         vpxorq          (%eax){1to4}, %ymm2, %ymm3