x86: optimize EVEX packed integer logical instructions
[deliverable/binutils-gdb.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
This page took 0.042533 seconds and 4 git commands to generate.