x86: Optimize EVEX vector load/store instructions
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-optimize-3.s
1 # Check 64bit instructions with optimized encoding
2
3         .allow_index_reg
4         .text
5 _start:
6         testq   $0x7f, %rax
7         testl   $0x7f, %eax
8         testw   $0x7f, %ax
9         testb   $0x7f, %al
10         test    $0x7f, %rbx
11         test    $0x7f, %ebx
12         test    $0x7f, %bx
13         test    $0x7f, %bl
14         test    $0x7f, %rdi
15         test    $0x7f, %edi
16         test    $0x7f, %di
17         test    $0x7f, %dil
18         test    $0x7f, %r9
19         test    $0x7f, %r9d
20         test    $0x7f, %r9w
21         test    $0x7f, %r9b
22
23         vandnpd %zmm1, %zmm1, %zmm5
24
25         vmovdqa32       %xmm1, %xmm2
26         vmovdqa64       %xmm1, %xmm2
27         vmovdqu8        %xmm1, %xmm2
28         vmovdqu16       %xmm1, %xmm2
29         vmovdqu32       %xmm1, %xmm2
30         vmovdqu64       %xmm1, %xmm2
31
32         vmovdqa32       %xmm11, %xmm12
33         vmovdqa64       %xmm11, %xmm12
34         vmovdqu8        %xmm11, %xmm12
35         vmovdqu16       %xmm11, %xmm12
36         vmovdqu32       %xmm11, %xmm12
37         vmovdqu64       %xmm11, %xmm12
38
39         vmovdqa32       127(%rax), %xmm2
40         vmovdqa64       127(%rax), %xmm2
41         vmovdqu8        127(%rax), %xmm2
42         vmovdqu16       127(%rax), %xmm2
43         vmovdqu32       127(%rax), %xmm2
44         vmovdqu64       127(%rax), %xmm2
45
46         vmovdqa32       %xmm1, 128(%rax)
47         vmovdqa64       %xmm1, 128(%rax)
48         vmovdqu8        %xmm1, 128(%rax)
49         vmovdqu16       %xmm1, 128(%rax)
50         vmovdqu32       %xmm1, 128(%rax)
51         vmovdqu64       %xmm1, 128(%rax)
52
53         vmovdqa32       %ymm1, %ymm2
54         vmovdqa64       %ymm1, %ymm2
55         vmovdqu8        %ymm1, %ymm2
56         vmovdqu16       %ymm1, %ymm2
57         vmovdqu32       %ymm1, %ymm2
58         vmovdqu64       %ymm1, %ymm2
59
60         vmovdqa32       %ymm11, %ymm12
61         vmovdqa64       %ymm11, %ymm12
62         vmovdqu8        %ymm11, %ymm12
63         vmovdqu16       %ymm11, %ymm12
64         vmovdqu32       %ymm11, %ymm12
65         vmovdqu64       %ymm11, %ymm12
66
67         vmovdqa32       127(%rax), %ymm2
68         vmovdqa64       127(%rax), %ymm2
69         vmovdqu8        127(%rax), %ymm2
70         vmovdqu16       127(%rax), %ymm2
71         vmovdqu32       127(%rax), %ymm2
72         vmovdqu64       127(%rax), %ymm2
73
74         vmovdqa32       %ymm1, 128(%rax)
75         vmovdqa64       %ymm1, 128(%rax)
76         vmovdqu8        %ymm1, 128(%rax)
77         vmovdqu16       %ymm1, 128(%rax)
78         vmovdqu32       %ymm1, 128(%rax)
79         vmovdqu64       %ymm1, 128(%rax)
80
81         vmovdqa32       %xmm21, %xmm2
82         vmovdqa64       %xmm21, %xmm2
83         vmovdqu8        %xmm21, %xmm2
84         vmovdqu16       %xmm21, %xmm2
85         vmovdqu32       %xmm21, %xmm2
86         vmovdqu64       %xmm21, %xmm2
87
88         vmovdqa32       %zmm1, %zmm2
89         vmovdqa64       %zmm1, %zmm2
90         vmovdqu8        %zmm1, %zmm2
91         vmovdqu16       %zmm1, %zmm2
92         vmovdqu32       %zmm1, %zmm2
93         vmovdqu64       %zmm1, %zmm2
94
95         {evex} vmovdqa32        %ymm1, %ymm2
96         {evex} vmovdqa64        %ymm1, %ymm2
97         {evex} vmovdqu8         %xmm1, %xmm2
98         {evex} vmovdqu16        %xmm1, %xmm2
99         {evex} vmovdqu32        %xmm1, %xmm2
100         {evex} vmovdqu64        %xmm1, %xmm2
101
102         vmovdqa32       %ymm1, %ymm2{%k1}
103         vmovdqa64       %ymm1, %ymm2{%k1}
104         vmovdqu8        %xmm1, %xmm2{%k1}
105         vmovdqu16       %xmm1, %xmm2{%k1}
106         vmovdqu32       %xmm1, %xmm2{%k1}
107         vmovdqu64       %xmm1, %xmm2{%k1}
108
109         vmovdqa32       (%rax), %ymm2{%k1}
110         vmovdqa64       (%rax), %ymm2{%k1}
111         vmovdqu8        (%rax), %xmm2{%k1}
112         vmovdqu16       (%rax), %xmm2{%k1}
113         vmovdqu32       (%rax), %xmm2{%k1}
114         vmovdqu64       (%rax), %xmm2{%k1}
115
116         vmovdqa32       %ymm1, (%rax){%k1}
117         vmovdqa64       %ymm1, (%rax){%k1}
118         vmovdqu8        %xmm1, (%rax){%k1}
119         vmovdqu16       %xmm1, (%rax){%k1}
120         vmovdqu32       %xmm1, (%rax){%k1}
121         vmovdqu64       %xmm1, (%rax){%k1}
122
123         vmovdqa32       %xmm1, %xmm2{%k1}{z}
124         vmovdqa64       %xmm1, %xmm2{%k1}{z}
125         vmovdqu8        %xmm1, %xmm2{%k1}{z}
126         vmovdqu16       %xmm1, %xmm2{%k1}{z}
127         vmovdqu32       %xmm1, %xmm2{%k1}{z}
128         vmovdqu64       %xmm1, %xmm2{%k1}{z}