x86: Optimize EVEX vector load/store instructions
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-optimize-2.s
1 # Check 64bit instructions with optimized encoding
2
3         .allow_index_reg
4         .text
5 _start:
6         vandnpd %zmm1, %zmm1, %zmm15{%k7}
7         vandnpd %ymm1, %ymm1, %ymm15     {%k7}          {z}
8         vandnpd %zmm1, %zmm1, %zmm15
9         vandnpd %ymm1, %ymm1, %ymm15
10         vandnpd %zmm1, %zmm1, %zmm16
11         vandnpd %ymm1, %ymm1, %ymm16
12         vandnpd %zmm17, %zmm17, %zmm1
13         vandnpd %ymm17, %ymm17, %ymm1
14
15         vandnps %zmm1, %zmm1, %zmm15{%k7}
16         vandnps %ymm1, %ymm1, %ymm15{z}{%k7}
17         vandnps %zmm1, %zmm1, %zmm15
18         vandnps %ymm1, %ymm1, %ymm15
19         vandnps %zmm1, %zmm1, %zmm16
20         vandnps %ymm1, %ymm1, %ymm16
21         vandnps %zmm17, %zmm17, %zmm1
22         vandnps %ymm17, %ymm17, %ymm1
23
24         vpandn %ymm1, %ymm1, %ymm15
25
26         vpandnd %zmm1, %zmm1, %zmm15{%k7}
27         vpandnd %ymm1, %ymm1, %ymm15{z}{%k7}
28         vpandnd %zmm1, %zmm1, %zmm15
29         vpandnd %ymm1, %ymm1, %ymm15
30         vpandnd %zmm1, %zmm1, %zmm16
31         vpandnd %ymm1, %ymm1, %ymm16
32         vpandnd %zmm17, %zmm17, %zmm1
33         vpandnd %ymm17, %ymm17, %ymm1
34
35         vpandnq %zmm1, %zmm1, %zmm15{%k7}
36         vpandnq %ymm1, %ymm1, %ymm15{z}{%k7}
37         vpandnq %zmm1, %zmm1, %zmm15
38         vpandnq %ymm1, %ymm1, %ymm15
39         vpandnq %zmm1, %zmm1, %zmm16
40         vpandnq %ymm1, %ymm1, %ymm16
41         vpandnq %zmm17, %zmm17, %zmm1
42         vpandnq %ymm17, %ymm17, %ymm1
43
44         vxorpd %zmm1, %zmm1, %zmm15{%k7}
45         vxorpd %ymm1, %ymm1, %ymm15{z}{%k7}
46         vxorpd %zmm1, %zmm1, %zmm15
47         vxorpd %ymm1, %ymm1, %ymm15
48         vxorpd %zmm1, %zmm1, %zmm16
49         vxorpd %ymm1, %ymm1, %ymm16
50         vxorpd %zmm17, %zmm17, %zmm1
51         vxorpd %ymm17, %ymm17, %ymm1
52
53         vxorps %zmm1, %zmm1, %zmm15{%k7}
54         vxorps %ymm1, %ymm1, %ymm15{z}{%k7}
55         vxorps %zmm1, %zmm1, %zmm15
56         vxorps %ymm1, %ymm1, %ymm15
57         vxorps %zmm1, %zmm1, %zmm16
58         vxorps %ymm1, %ymm1, %ymm16
59         vxorps %zmm17, %zmm17, %zmm1
60         vxorps %ymm17, %ymm17, %ymm1
61
62         vpxor %ymm1, %ymm1, %ymm15
63
64         vpxord %zmm1, %zmm1, %zmm15{%k7}
65         vpxord %ymm1, %ymm1, %ymm15{z}{%k7}
66         vpxord %zmm1, %zmm1, %zmm15
67         vpxord %ymm1, %ymm1, %ymm15
68         vpxord %zmm1, %zmm1, %zmm16
69         vpxord %ymm1, %ymm1, %ymm16
70         vpxord %zmm17, %zmm17, %zmm1
71         vpxord %ymm17, %ymm17, %ymm1
72
73         vpxorq %zmm1, %zmm1, %zmm15{%k7}
74         vpxorq %ymm1, %ymm1, %ymm15{z}{%k7}
75         vpxorq %zmm1, %zmm1, %zmm15
76         vpxorq %ymm1, %ymm1, %ymm15
77         vpxorq %zmm1, %zmm1, %zmm16
78         vpxorq %ymm1, %ymm1, %ymm16
79         vpxorq %zmm17, %zmm17, %zmm1
80         vpxorq %ymm17, %ymm17, %ymm1
81
82         vpsubb %zmm1, %zmm1, %zmm15{%k7}
83         vpsubb %ymm1, %ymm1, %ymm15{z}{%k7}
84         vpsubb %zmm1, %zmm1, %zmm15
85         vpsubb %ymm1, %ymm1, %ymm15
86         vpsubb %zmm1, %zmm1, %zmm16
87         vpsubb %ymm1, %ymm1, %ymm16
88         vpsubb %zmm17, %zmm17, %zmm1
89         vpsubb %ymm17, %ymm17, %ymm1
90
91         vpsubw %zmm1, %zmm1, %zmm15{%k7}
92         vpsubw %ymm1, %ymm1, %ymm15{z}{%k7}
93         vpsubw %zmm1, %zmm1, %zmm15
94         vpsubw %ymm1, %ymm1, %ymm15
95         vpsubw %zmm1, %zmm1, %zmm16
96         vpsubw %ymm1, %ymm1, %ymm16
97         vpsubw %zmm17, %zmm17, %zmm1
98         vpsubw %ymm17, %ymm17, %ymm1
99
100         vpsubd %zmm1, %zmm1, %zmm15{%k7}
101         vpsubd %ymm1, %ymm1, %ymm15{z}{%k7}
102         vpsubd %zmm1, %zmm1, %zmm15
103         vpsubd %ymm1, %ymm1, %ymm15
104         vpsubd %zmm1, %zmm1, %zmm16
105         vpsubd %ymm1, %ymm1, %ymm16
106         vpsubd %zmm17, %zmm17, %zmm1
107         vpsubd %ymm17, %ymm17, %ymm1
108
109         vpsubq %zmm1, %zmm1, %zmm15{%k7}
110         vpsubq %ymm1, %ymm1, %ymm15{z}{%k7}
111         vpsubq %zmm1, %zmm1, %zmm15
112         vpsubq %ymm1, %ymm1, %ymm15
113         vpsubq %zmm1, %zmm1, %zmm16
114         vpsubq %ymm1, %ymm1, %ymm16
115         vpsubq %zmm17, %zmm17, %zmm1
116         vpsubq %ymm17, %ymm17, %ymm1
117
118         vmovdqa32       %xmm1, %xmm2
119         vmovdqa64       %xmm1, %xmm2
120         vmovdqu8        %xmm1, %xmm2
121         vmovdqu16       %xmm1, %xmm2
122         vmovdqu32       %xmm1, %xmm2
123         vmovdqu64       %xmm1, %xmm2
124
125         vmovdqa32       %xmm11, %xmm12
126         vmovdqa64       %xmm11, %xmm12
127         vmovdqu8        %xmm11, %xmm12
128         vmovdqu16       %xmm11, %xmm12
129         vmovdqu32       %xmm11, %xmm12
130         vmovdqu64       %xmm11, %xmm12
131
132         vmovdqa32       127(%rax), %xmm2
133         vmovdqa64       127(%rax), %xmm2
134         vmovdqu8        127(%rax), %xmm2
135         vmovdqu16       127(%rax), %xmm2
136         vmovdqu32       127(%rax), %xmm2
137         vmovdqu64       127(%rax), %xmm2
138
139         vmovdqa32       %xmm1, 128(%rax)
140         vmovdqa64       %xmm1, 128(%rax)
141         vmovdqu8        %xmm1, 128(%rax)
142         vmovdqu16       %xmm1, 128(%rax)
143         vmovdqu32       %xmm1, 128(%rax)
144         vmovdqu64       %xmm1, 128(%rax)
145
146         vmovdqa32       %ymm1, %ymm2
147         vmovdqa64       %ymm1, %ymm2
148         vmovdqu8        %ymm1, %ymm2
149         vmovdqu16       %ymm1, %ymm2
150         vmovdqu32       %ymm1, %ymm2
151         vmovdqu64       %ymm1, %ymm2
152
153         vmovdqa32       %ymm11, %ymm12
154         vmovdqa64       %ymm11, %ymm12
155         vmovdqu8        %ymm11, %ymm12
156         vmovdqu16       %ymm11, %ymm12
157         vmovdqu32       %ymm11, %ymm12
158         vmovdqu64       %ymm11, %ymm12
159
160         vmovdqa32       127(%rax), %ymm2
161         vmovdqa64       127(%rax), %ymm2
162         vmovdqu8        127(%rax), %ymm2
163         vmovdqu16       127(%rax), %ymm2
164         vmovdqu32       127(%rax), %ymm2
165         vmovdqu64       127(%rax), %ymm2
166
167         vmovdqa32       %ymm1, 128(%rax)
168         vmovdqa64       %ymm1, 128(%rax)
169         vmovdqu8        %ymm1, 128(%rax)
170         vmovdqu16       %ymm1, 128(%rax)
171         vmovdqu32       %ymm1, 128(%rax)
172         vmovdqu64       %ymm1, 128(%rax)