i386: Check for reserved VEX.vvvv and EVEX.vvvv
[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}