x86: Optimize EVEX vector load/store instructions
[external/binutils.git] / gas / testsuite / gas / i386 / optimize-1.s
1 # Check instructions with optimized encoding
2
3         .allow_index_reg
4         .text
5 _start:
6         vandnpd %zmm1, %zmm1, %zmm5{%k7}
7         vandnpd %ymm1, %ymm1, %ymm5      {%k7}          {z}
8         vandnpd %zmm1, %zmm1, %zmm5
9         vandnpd %ymm1, %ymm1, %ymm5
10
11         vandnps %zmm1, %zmm1, %zmm5{%k7}
12         vandnps %ymm1, %ymm1, %ymm5{z}{%k7}
13         vandnps %zmm1, %zmm1, %zmm5
14         vandnps %ymm1, %ymm1, %ymm5
15
16         vpandn %ymm1, %ymm1, %ymm5
17
18         vpandnd %zmm1, %zmm1, %zmm5{%k7}
19         vpandnd %ymm1, %ymm1, %ymm5{z}{%k7}
20         vpandnd %zmm1, %zmm1, %zmm5
21         vpandnd %ymm1, %ymm1, %ymm5
22
23         vpandnq %zmm1, %zmm1, %zmm5{%k7}
24         vpandnq %ymm1, %ymm1, %ymm5{z}{%k7}
25         vpandnq %zmm1, %zmm1, %zmm5
26         vpandnq %ymm1, %ymm1, %ymm5
27
28         vxorpd %zmm1, %zmm1, %zmm5{%k7}
29         vxorpd %ymm1, %ymm1, %ymm5{z}{%k7}
30         vxorpd %zmm1, %zmm1, %zmm5
31         vxorpd %ymm1, %ymm1, %ymm5
32
33         vxorps %zmm1, %zmm1, %zmm5{%k7}
34         vxorps %ymm1, %ymm1, %ymm5{z}{%k7}
35         vxorps %zmm1, %zmm1, %zmm5
36         vxorps %ymm1, %ymm1, %ymm5
37
38         vpxor %ymm1, %ymm1, %ymm5
39
40         vpxord %zmm1, %zmm1, %zmm5{%k7}
41         vpxord %ymm1, %ymm1, %ymm5{z}{%k7}
42         vpxord %zmm1, %zmm1, %zmm5
43         vpxord %ymm1, %ymm1, %ymm5
44
45         vpxorq %zmm1, %zmm1, %zmm5{%k7}
46         vpxorq %ymm1, %ymm1, %ymm5{z}{%k7}
47         vpxorq %zmm1, %zmm1, %zmm5
48         vpxorq %ymm1, %ymm1, %ymm5
49
50         vpsubb %zmm1, %zmm1, %zmm5{%k7}
51         vpsubb %ymm1, %ymm1, %ymm5{z}{%k7}
52         vpsubb %zmm1, %zmm1, %zmm5
53         vpsubb %ymm1, %ymm1, %ymm5
54
55         vpsubw %zmm1, %zmm1, %zmm5{%k7}
56         vpsubw %ymm1, %ymm1, %ymm5{z}{%k7}
57         vpsubw %zmm1, %zmm1, %zmm5
58         vpsubw %ymm1, %ymm1, %ymm5
59
60         vpsubd %zmm1, %zmm1, %zmm5{%k7}
61         vpsubd %ymm1, %ymm1, %ymm5{z}{%k7}
62         vpsubd %zmm1, %zmm1, %zmm5
63         vpsubd %ymm1, %ymm1, %ymm5
64
65         vpsubq %zmm1, %zmm1, %zmm5{%k7}
66         vpsubq %ymm1, %ymm1, %ymm5{z}{%k7}
67         vpsubq %zmm1, %zmm1, %zmm5
68         vpsubq %ymm1, %ymm1, %ymm5
69
70         kxord %k1, %k1, %k5
71         kxorq %k1, %k1, %k5
72
73         kandnd %k1, %k1, %k5
74         kandnq %k1, %k1, %k5
75
76         vmovdqa32       %xmm1, %xmm2
77         vmovdqa64       %xmm1, %xmm2
78         vmovdqu8        %xmm1, %xmm2
79         vmovdqu16       %xmm1, %xmm2
80         vmovdqu32       %xmm1, %xmm2
81         vmovdqu64       %xmm1, %xmm2
82
83         vmovdqa32       127(%eax), %xmm2
84         vmovdqa64       127(%eax), %xmm2
85         vmovdqu8        127(%eax), %xmm2
86         vmovdqu16       127(%eax), %xmm2
87         vmovdqu32       127(%eax), %xmm2
88         vmovdqu64       127(%eax), %xmm2
89
90         vmovdqa32       %xmm1, 128(%eax)
91         vmovdqa64       %xmm1, 128(%eax)
92         vmovdqu8        %xmm1, 128(%eax)
93         vmovdqu16       %xmm1, 128(%eax)
94         vmovdqu32       %xmm1, 128(%eax)
95         vmovdqu64       %xmm1, 128(%eax)
96
97         vmovdqa32       %ymm1, %ymm2
98         vmovdqa64       %ymm1, %ymm2
99         vmovdqu8        %ymm1, %ymm2
100         vmovdqu16       %ymm1, %ymm2
101         vmovdqu32       %ymm1, %ymm2
102         vmovdqu64       %ymm1, %ymm2
103
104         vmovdqa32       127(%eax), %ymm2
105         vmovdqa64       127(%eax), %ymm2
106         vmovdqu8        127(%eax), %ymm2
107         vmovdqu16       127(%eax), %ymm2
108         vmovdqu32       127(%eax), %ymm2
109         vmovdqu64       127(%eax), %ymm2
110
111         vmovdqa32       %ymm1, 128(%eax)
112         vmovdqa64       %ymm1, 128(%eax)
113         vmovdqu8        %ymm1, 128(%eax)
114         vmovdqu16       %ymm1, 128(%eax)
115         vmovdqu32       %ymm1, 128(%eax)
116         vmovdqu64       %ymm1, 128(%eax)