x86: optimize AND/OR with twice the same register
[external/binutils.git] / gas / testsuite / gas / i386 / optimize-2b.d
1 #source: optimize-2.s
2 #as: -O2
3 #objdump: -drw
4 #name: optimized encoding 2 with -O2
5
6 .*: +file format .*
7
8
9 Disassembly of section .text:
10
11 0+ <_start>:
12  +[a-f0-9]+:    a9 7f 00 00 00          test   \$0x7f,%eax
13  +[a-f0-9]+:    66 a9 7f 00             test   \$0x7f,%ax
14  +[a-f0-9]+:    a8 7f                   test   \$0x7f,%al
15  +[a-f0-9]+:    f7 c3 7f 00 00 00       test   \$0x7f,%ebx
16  +[a-f0-9]+:    66 f7 c3 7f 00          test   \$0x7f,%bx
17  +[a-f0-9]+:    f6 c3 7f                test   \$0x7f,%bl
18  +[a-f0-9]+:    f7 c7 7f 00 00 00       test   \$0x7f,%edi
19  +[a-f0-9]+:    66 f7 c7 7f 00          test   \$0x7f,%di
20  +[a-f0-9]+:    84 c9                   test   %cl,%cl
21  +[a-f0-9]+:    66 85 d2                test   %dx,%dx
22  +[a-f0-9]+:    85 db                   test   %ebx,%ebx
23  +[a-f0-9]+:    84 e4                   test   %ah,%ah
24  +[a-f0-9]+:    66 85 ed                test   %bp,%bp
25  +[a-f0-9]+:    85 f6                   test   %esi,%esi
26  +[a-f0-9]+:    c5 f1 55 e9             vandnpd %xmm1,%xmm1,%xmm5
27  +[a-f0-9]+:    c5 f9 6f d1             vmovdqa %xmm1,%xmm2
28  +[a-f0-9]+:    c5 f9 6f d1             vmovdqa %xmm1,%xmm2
29  +[a-f0-9]+:    c5 fa 6f d1             vmovdqu %xmm1,%xmm2
30  +[a-f0-9]+:    c5 fa 6f d1             vmovdqu %xmm1,%xmm2
31  +[a-f0-9]+:    c5 fa 6f d1             vmovdqu %xmm1,%xmm2
32  +[a-f0-9]+:    c5 fa 6f d1             vmovdqu %xmm1,%xmm2
33  +[a-f0-9]+:    c5 f9 6f 50 7f          vmovdqa 0x7f\(%eax\),%xmm2
34  +[a-f0-9]+:    c5 f9 6f 50 7f          vmovdqa 0x7f\(%eax\),%xmm2
35  +[a-f0-9]+:    c5 fa 6f 50 7f          vmovdqu 0x7f\(%eax\),%xmm2
36  +[a-f0-9]+:    c5 fa 6f 50 7f          vmovdqu 0x7f\(%eax\),%xmm2
37  +[a-f0-9]+:    c5 fa 6f 50 7f          vmovdqu 0x7f\(%eax\),%xmm2
38  +[a-f0-9]+:    c5 fa 6f 50 7f          vmovdqu 0x7f\(%eax\),%xmm2
39  +[a-f0-9]+:    62 f1 7d 08 7f 48 08    vmovdqa32 %xmm1,0x80\(%eax\)
40  +[a-f0-9]+:    62 f1 fd 08 7f 48 08    vmovdqa64 %xmm1,0x80\(%eax\)
41  +[a-f0-9]+:    62 f1 7f 08 7f 48 08    vmovdqu8 %xmm1,0x80\(%eax\)
42  +[a-f0-9]+:    62 f1 ff 08 7f 48 08    vmovdqu16 %xmm1,0x80\(%eax\)
43  +[a-f0-9]+:    62 f1 7e 08 7f 48 08    vmovdqu32 %xmm1,0x80\(%eax\)
44  +[a-f0-9]+:    62 f1 fe 08 7f 48 08    vmovdqu64 %xmm1,0x80\(%eax\)
45  +[a-f0-9]+:    c5 fd 6f d1             vmovdqa %ymm1,%ymm2
46  +[a-f0-9]+:    c5 fd 6f d1             vmovdqa %ymm1,%ymm2
47  +[a-f0-9]+:    c5 fe 6f d1             vmovdqu %ymm1,%ymm2
48  +[a-f0-9]+:    c5 fe 6f d1             vmovdqu %ymm1,%ymm2
49  +[a-f0-9]+:    c5 fe 6f d1             vmovdqu %ymm1,%ymm2
50  +[a-f0-9]+:    c5 fe 6f d1             vmovdqu %ymm1,%ymm2
51  +[a-f0-9]+:    c5 fd 6f 50 7f          vmovdqa 0x7f\(%eax\),%ymm2
52  +[a-f0-9]+:    c5 fd 6f 50 7f          vmovdqa 0x7f\(%eax\),%ymm2
53  +[a-f0-9]+:    c5 fe 6f 50 7f          vmovdqu 0x7f\(%eax\),%ymm2
54  +[a-f0-9]+:    c5 fe 6f 50 7f          vmovdqu 0x7f\(%eax\),%ymm2
55  +[a-f0-9]+:    c5 fe 6f 50 7f          vmovdqu 0x7f\(%eax\),%ymm2
56  +[a-f0-9]+:    c5 fe 6f 50 7f          vmovdqu 0x7f\(%eax\),%ymm2
57  +[a-f0-9]+:    62 f1 7d 28 7f 48 04    vmovdqa32 %ymm1,0x80\(%eax\)
58  +[a-f0-9]+:    62 f1 fd 28 7f 48 04    vmovdqa64 %ymm1,0x80\(%eax\)
59  +[a-f0-9]+:    62 f1 7f 28 7f 48 04    vmovdqu8 %ymm1,0x80\(%eax\)
60  +[a-f0-9]+:    62 f1 ff 28 7f 48 04    vmovdqu16 %ymm1,0x80\(%eax\)
61  +[a-f0-9]+:    62 f1 7e 28 7f 48 04    vmovdqu32 %ymm1,0x80\(%eax\)
62  +[a-f0-9]+:    62 f1 fe 28 7f 48 04    vmovdqu64 %ymm1,0x80\(%eax\)
63  +[a-f0-9]+:    62 f1 7d 48 6f d1       vmovdqa32 %zmm1,%zmm2
64  +[a-f0-9]+:    62 f1 fd 48 6f d1       vmovdqa64 %zmm1,%zmm2
65  +[a-f0-9]+:    62 f1 7f 48 6f d1       vmovdqu8 %zmm1,%zmm2
66  +[a-f0-9]+:    62 f1 ff 48 6f d1       vmovdqu16 %zmm1,%zmm2
67  +[a-f0-9]+:    62 f1 7e 48 6f d1       vmovdqu32 %zmm1,%zmm2
68  +[a-f0-9]+:    62 f1 fe 48 6f d1       vmovdqu64 %zmm1,%zmm2
69  +[a-f0-9]+:    62 f1 7d 28 6f d1       vmovdqa32 %ymm1,%ymm2
70  +[a-f0-9]+:    62 f1 fd 28 6f d1       vmovdqa64 %ymm1,%ymm2
71  +[a-f0-9]+:    62 f1 7f 08 6f d1       vmovdqu8 %xmm1,%xmm2
72  +[a-f0-9]+:    62 f1 ff 08 6f d1       vmovdqu16 %xmm1,%xmm2
73  +[a-f0-9]+:    62 f1 7e 08 6f d1       vmovdqu32 %xmm1,%xmm2
74  +[a-f0-9]+:    62 f1 fe 08 6f d1       vmovdqu64 %xmm1,%xmm2
75  +[a-f0-9]+:    62 f1 7d 29 6f d1       vmovdqa32 %ymm1,%ymm2\{%k1\}
76  +[a-f0-9]+:    62 f1 fd 29 6f d1       vmovdqa64 %ymm1,%ymm2\{%k1\}
77  +[a-f0-9]+:    62 f1 7f 09 6f d1       vmovdqu8 %xmm1,%xmm2\{%k1\}
78  +[a-f0-9]+:    62 f1 ff 09 6f d1       vmovdqu16 %xmm1,%xmm2\{%k1\}
79  +[a-f0-9]+:    62 f1 7e 09 6f d1       vmovdqu32 %xmm1,%xmm2\{%k1\}
80  +[a-f0-9]+:    62 f1 fe 09 6f d1       vmovdqu64 %xmm1,%xmm2\{%k1\}
81  +[a-f0-9]+:    62 f1 7d 29 6f 10       vmovdqa32 \(%eax\),%ymm2\{%k1\}
82  +[a-f0-9]+:    62 f1 fd 29 6f 10       vmovdqa64 \(%eax\),%ymm2\{%k1\}
83  +[a-f0-9]+:    62 f1 7f 09 6f 10       vmovdqu8 \(%eax\),%xmm2\{%k1\}
84  +[a-f0-9]+:    62 f1 ff 09 6f 10       vmovdqu16 \(%eax\),%xmm2\{%k1\}
85  +[a-f0-9]+:    62 f1 7e 09 6f 10       vmovdqu32 \(%eax\),%xmm2\{%k1\}
86  +[a-f0-9]+:    62 f1 fe 09 6f 10       vmovdqu64 \(%eax\),%xmm2\{%k1\}
87  +[a-f0-9]+:    62 f1 7d 29 7f 08       vmovdqa32 %ymm1,\(%eax\)\{%k1\}
88  +[a-f0-9]+:    62 f1 fd 29 7f 08       vmovdqa64 %ymm1,\(%eax\)\{%k1\}
89  +[a-f0-9]+:    62 f1 7f 09 7f 08       vmovdqu8 %xmm1,\(%eax\)\{%k1\}
90  +[a-f0-9]+:    62 f1 ff 09 7f 08       vmovdqu16 %xmm1,\(%eax\)\{%k1\}
91  +[a-f0-9]+:    62 f1 7e 09 7f 08       vmovdqu32 %xmm1,\(%eax\)\{%k1\}
92  +[a-f0-9]+:    62 f1 fe 09 7f 08       vmovdqu64 %xmm1,\(%eax\)\{%k1\}
93  +[a-f0-9]+:    62 f1 7d 89 6f d1       vmovdqa32 %xmm1,%xmm2\{%k1\}\{z\}
94  +[a-f0-9]+:    62 f1 fd 89 6f d1       vmovdqa64 %xmm1,%xmm2\{%k1\}\{z\}
95  +[a-f0-9]+:    62 f1 7f 89 6f d1       vmovdqu8 %xmm1,%xmm2\{%k1\}\{z\}
96  +[a-f0-9]+:    62 f1 ff 89 6f d1       vmovdqu16 %xmm1,%xmm2\{%k1\}\{z\}
97  +[a-f0-9]+:    62 f1 7e 89 6f d1       vmovdqu32 %xmm1,%xmm2\{%k1\}\{z\}
98  +[a-f0-9]+:    62 f1 fe 89 6f d1       vmovdqu64 %xmm1,%xmm2\{%k1\}\{z\}
99  +[a-f0-9]+:    c5 .*   vpand  %xmm2,%xmm3,%xmm4
100  +[a-f0-9]+:    c5 .*   vpand  %xmm2,%xmm3,%xmm4
101  +[a-f0-9]+:    c5 .*   vpandn %xmm2,%xmm3,%xmm4
102  +[a-f0-9]+:    c5 .*   vpandn %xmm2,%xmm3,%xmm4
103  +[a-f0-9]+:    c5 .*   vpor   %xmm2,%xmm3,%xmm4
104  +[a-f0-9]+:    c5 .*   vpor   %xmm2,%xmm3,%xmm4
105  +[a-f0-9]+:    c5 .*   vpxor  %xmm2,%xmm3,%xmm4
106  +[a-f0-9]+:    c5 .*   vpxor  %xmm2,%xmm3,%xmm4
107  +[a-f0-9]+:    c5 .*   vpand  %ymm2,%ymm3,%ymm4
108  +[a-f0-9]+:    c5 .*   vpand  %ymm2,%ymm3,%ymm4
109  +[a-f0-9]+:    c5 .*   vpandn %ymm2,%ymm3,%ymm4
110  +[a-f0-9]+:    c5 .*   vpandn %ymm2,%ymm3,%ymm4
111  +[a-f0-9]+:    c5 .*   vpor   %ymm2,%ymm3,%ymm4
112  +[a-f0-9]+:    c5 .*   vpor   %ymm2,%ymm3,%ymm4
113  +[a-f0-9]+:    c5 .*   vpxor  %ymm2,%ymm3,%ymm4
114  +[a-f0-9]+:    c5 .*   vpxor  %ymm2,%ymm3,%ymm4
115  +[a-f0-9]+:    c5 .*   vpand  0x70\(%eax\),%xmm2,%xmm3
116  +[a-f0-9]+:    c5 .*   vpand  0x70\(%eax\),%xmm2,%xmm3
117  +[a-f0-9]+:    c5 .*   vpandn 0x70\(%eax\),%xmm2,%xmm3
118  +[a-f0-9]+:    c5 .*   vpandn 0x70\(%eax\),%xmm2,%xmm3
119  +[a-f0-9]+:    c5 .*   vpor   0x70\(%eax\),%xmm2,%xmm3
120  +[a-f0-9]+:    c5 .*   vpor   0x70\(%eax\),%xmm2,%xmm3
121  +[a-f0-9]+:    c5 .*   vpxor  0x70\(%eax\),%xmm2,%xmm3
122  +[a-f0-9]+:    c5 .*   vpxor  0x70\(%eax\),%xmm2,%xmm3
123  +[a-f0-9]+:    62 .*   vpandd 0x80\(%eax\),%xmm2,%xmm3
124  +[a-f0-9]+:    62 .*   vpandq 0x80\(%eax\),%xmm2,%xmm3
125  +[a-f0-9]+:    62 .*   vpandnd 0x80\(%eax\),%xmm2,%xmm3
126  +[a-f0-9]+:    62 .*   vpandnq 0x80\(%eax\),%xmm2,%xmm3
127  +[a-f0-9]+:    62 .*   vpord  0x80\(%eax\),%xmm2,%xmm3
128  +[a-f0-9]+:    62 .*   vporq  0x80\(%eax\),%xmm2,%xmm3
129  +[a-f0-9]+:    62 .*   vpxord 0x80\(%eax\),%xmm2,%xmm3
130  +[a-f0-9]+:    62 .*   vpxorq 0x80\(%eax\),%xmm2,%xmm3
131  +[a-f0-9]+:    c5 .*   vpand  0x60\(%eax\),%ymm2,%ymm3
132  +[a-f0-9]+:    c5 .*   vpand  0x60\(%eax\),%ymm2,%ymm3
133  +[a-f0-9]+:    c5 .*   vpandn 0x60\(%eax\),%ymm2,%ymm3
134  +[a-f0-9]+:    c5 .*   vpandn 0x60\(%eax\),%ymm2,%ymm3
135  +[a-f0-9]+:    c5 .*   vpor   0x60\(%eax\),%ymm2,%ymm3
136  +[a-f0-9]+:    c5 .*   vpor   0x60\(%eax\),%ymm2,%ymm3
137  +[a-f0-9]+:    c5 .*   vpxor  0x60\(%eax\),%ymm2,%ymm3
138  +[a-f0-9]+:    c5 .*   vpxor  0x60\(%eax\),%ymm2,%ymm3
139  +[a-f0-9]+:    62 .*   vpandd 0x80\(%eax\),%ymm2,%ymm3
140  +[a-f0-9]+:    62 .*   vpandq 0x80\(%eax\),%ymm2,%ymm3
141  +[a-f0-9]+:    62 .*   vpandnd 0x80\(%eax\),%ymm2,%ymm3
142  +[a-f0-9]+:    62 .*   vpandnq 0x80\(%eax\),%ymm2,%ymm3
143  +[a-f0-9]+:    62 .*   vpord  0x80\(%eax\),%ymm2,%ymm3
144  +[a-f0-9]+:    62 .*   vporq  0x80\(%eax\),%ymm2,%ymm3
145  +[a-f0-9]+:    62 .*   vpxord 0x80\(%eax\),%ymm2,%ymm3
146  +[a-f0-9]+:    62 .*   vpxorq 0x80\(%eax\),%ymm2,%ymm3
147  +[a-f0-9]+:    62 .*   vpandd %xmm2,%xmm3,%xmm4\{%k5\}
148  +[a-f0-9]+:    62 .*   vpandq %ymm2,%ymm3,%ymm4\{%k5\}
149  +[a-f0-9]+:    62 .*   vpandnd %ymm2,%ymm3,%ymm4\{%k5\}
150  +[a-f0-9]+:    62 .*   vpandnq %xmm2,%xmm3,%xmm4\{%k5\}
151  +[a-f0-9]+:    62 .*   vpord  %xmm2,%xmm3,%xmm4\{%k5\}
152  +[a-f0-9]+:    62 .*   vporq  %ymm2,%ymm3,%ymm4\{%k5\}
153  +[a-f0-9]+:    62 .*   vpxord %ymm2,%ymm3,%ymm4\{%k5\}
154  +[a-f0-9]+:    62 .*   vpxorq %xmm2,%xmm3,%xmm4\{%k5\}
155  +[a-f0-9]+:    62 .*   vpandd \(%eax\)\{1to8\},%ymm2,%ymm3
156  +[a-f0-9]+:    62 .*   vpandq \(%eax\)\{1to2\},%xmm2,%xmm3
157  +[a-f0-9]+:    62 .*   vpandnd \(%eax\)\{1to4\},%xmm2,%xmm3
158  +[a-f0-9]+:    62 .*   vpandnq \(%eax\)\{1to4\},%ymm2,%ymm3
159  +[a-f0-9]+:    62 .*   vpord  \(%eax\)\{1to8\},%ymm2,%ymm3
160  +[a-f0-9]+:    62 .*   vporq  \(%eax\)\{1to2\},%xmm2,%xmm3
161  +[a-f0-9]+:    62 .*   vpxord \(%eax\)\{1to4\},%xmm2,%xmm3
162  +[a-f0-9]+:    62 .*   vpxorq \(%eax\)\{1to4\},%ymm2,%ymm3
163 #pass