1 #as: -O -q
2 #objdump: -drw
3 #name: x86-64 LEA optimizations
4 #source: lea64.s
5 
6 .*: +file format .*
7 
8 Disassembly of section .text:
9 
10 0+ <start>:
11 [ 	]*[0-9a-f]+:[ 	]+8d 04 08[ 	]+lea[ 	]+\(%rax,%rcx(,1)?\),%eax
12 [ 	]*[0-9a-f]+:[ 	]+8d 04 08[ 	]+lea[ 	]+\(%rax,%rcx(,1)?\),%eax
13 [ 	]*[0-9a-f]+:[ 	]+8d 48 01[ 	]+lea[ 	]+0x1\(%rax\),%ecx
14 [ 	]*[0-9a-f]+:[ 	]+8d 88 00 00 00 00[ 	]+lea[ 	]+0x0\(%rax\),%ecx[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
15 [ 	]*[0-9a-f]+:[ 	]+8d 0c 25 00 00 00 00[ 	]+lea[ 	]+0x0,%ecx[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
16 [ 	]*[0-9a-f]+:[ 	]+8d 04 00[ 	]+lea[ 	]+\(%rax,%rax(,1)?\),%eax
17 [ 	]*[0-9a-f]+:[ 	]+8d 04 45 00 00 00 00[ 	]+lea[ 	]+0x0\(,%rax,2\),%eax
18 [ 	]*[0-9a-f]+:[ 	]+8d 05 00 00 00 00[ 	]+lea[ 	]+0x0\(%rip\),%eax($| *#.*)
19 [ 	]*[0-9a-f]+:[ 	]+8d 04 25 00 00 00 00[ 	]+lea[ 	]+0x0,%eax
20 [ 	]*[0-9a-f]+:[ 	]+48 8b c0[ 	]+mov[ 	]+%rax,%rax
21 [ 	]*[0-9a-f]+:[ 	]+48 8b c8[ 	]+mov[ 	]+%rax,%rcx
22 [ 	]*[0-9a-f]+:[ 	]+48 8b c8[ 	]+mov[ 	]+%rax,%rcx
23 [ 	]*[0-9a-f]+:[ 	]+48 8b c8[ 	]+mov[ 	]+%rax,%rcx
24 [ 	]*[0-9a-f]+:[ 	]+8b c6[ 	]+mov[ 	]+%esi,%eax
25 [ 	]*[0-9a-f]+:[ 	]+8b f6[ 	]+mov[ 	]+%esi,%esi
26 [ 	]*[0-9a-f]+:[ 	]+8b c6[ 	]+mov[ 	]+%esi,%eax
27 [ 	]*[0-9a-f]+:[ 	]+66 8b c6[ 	]+mov[ 	]+%si,%ax
28 [ 	]*[0-9a-f]+:[ 	]+66 8b f6[ 	]+mov[ 	]+%si,%si
29 [ 	]*[0-9a-f]+:[ 	]+66 8b c6[ 	]+mov[ 	]+%si,%ax
30 [ 	]*[0-9a-f]+:[ 	]+8b c0[ 	]+mov[ 	]+%eax,%eax
31 [ 	]*[0-9a-f]+:[ 	]+8b c8[ 	]+mov[ 	]+%eax,%ecx
32 [ 	]*[0-9a-f]+:[ 	]+8b c8[ 	]+mov[ 	]+%eax,%ecx
33 [ 	]*[0-9a-f]+:[ 	]+8b c0[ 	]+mov[ 	]+%eax,%eax
34 [ 	]*[0-9a-f]+:[ 	]+8b c8[ 	]+mov[ 	]+%eax,%ecx
35 [ 	]*[0-9a-f]+:[ 	]+66 8b c6[ 	]+mov[ 	]+%si,%ax
36 [ 	]*[0-9a-f]+:[ 	]+66 8b f6[ 	]+mov[ 	]+%si,%si
37 [ 	]*[0-9a-f]+:[ 	]+66 8b c6[ 	]+mov[ 	]+%si,%ax
38 [ 	]*[0-9a-f]+:[ 	]+48 8b c9[ 	]+mov[ 	]+%rcx,%rcx
39 [ 	]*[0-9a-f]+:[ 	]+48 8b c1[ 	]+mov[ 	]+%rcx,%rax
40 [ 	]*[0-9a-f]+:[ 	]+8b c9[ 	]+mov[ 	]+%ecx,%ecx
41 [ 	]*[0-9a-f]+:[ 	]+8b c1[ 	]+mov[ 	]+%ecx,%eax
42 [ 	]*[0-9a-f]+:[ 	]+66 8b c9[ 	]+mov[ 	]+%cx,%cx
43 [ 	]*[0-9a-f]+:[ 	]+66 8b c1[ 	]+mov[ 	]+%cx,%ax
44 [ 	]*[0-9a-f]+:[ 	]+8b c9[ 	]+mov[ 	]+%ecx,%ecx
45 [ 	]*[0-9a-f]+:[ 	]+8b c1[ 	]+mov[ 	]+%ecx,%eax
46 [ 	]*[0-9a-f]+:[ 	]+8b c9[ 	]+mov[ 	]+%ecx,%ecx
47 [ 	]*[0-9a-f]+:[ 	]+8b c1[ 	]+mov[ 	]+%ecx,%eax
48 [ 	]*[0-9a-f]+:[ 	]+66 8b c9[ 	]+mov[ 	]+%cx,%cx
49 [ 	]*[0-9a-f]+:[ 	]+66 8b c1[ 	]+mov[ 	]+%cx,%ax
50 [ 	]*[0-9a-f]+:[ 	]+b8 01 00 00 00[ 	]+mov[ 	]+\$0x1,%eax
51 [ 	]*[0-9a-f]+:[ 	]+b8 02 00 00 00[ 	]+mov[ 	]+\$0x2,%eax
52 [ 	]*[0-9a-f]+:[ 	]+66 b8 03 00[ 	]+mov[ 	]+\$0x3,%ax
53 [ 	]*[0-9a-f]+:[ 	]+48 c7 c0 ff ff ff ff[ 	]+mov[ 	]+\$0xffffffffffffffff,%rax
54 [ 	]*[0-9a-f]+:[ 	]+b8 fe ff ff ff[ 	]+mov[ 	]+\$0xfffffffe,%eax
55 [ 	]*[0-9a-f]+:[ 	]+66 b8 fd ff[ 	]+mov[ 	]+\$0xfffd,%ax
56 [ 	]*[0-9a-f]+:[ 	]+b8 01 00 00 00[ 	]+mov[ 	]+\$0x1,%eax
57 [ 	]*[0-9a-f]+:[ 	]+b8 02 00 00 00[ 	]+mov[ 	]+\$0x2,%eax
58 [ 	]*[0-9a-f]+:[ 	]+66 b8 03 00[ 	]+mov[ 	]+\$0x3,%ax
59 [ 	]*[0-9a-f]+:[ 	]+b8 ff ff ff ff[ 	]+mov[ 	]+\$0xffffffff,%eax
60 [ 	]*[0-9a-f]+:[ 	]+b8 fe ff ff ff[ 	]+mov[ 	]+\$0xfffffffe,%eax
61 [ 	]*[0-9a-f]+:[ 	]+66 b8 fd ff[ 	]+mov[ 	]+\$0xfffd,%ax
62 [ 	]*[0-9a-f]+:[ 	]+48 c7 c0 00 00 00 00[ 	]+mov[ 	]+\$0x0,%rax[ 	]+[0-9a-f]+: R_X86_64_32S[ 	]+sym
63 [ 	]*[0-9a-f]+:[ 	]+b8 00 00 00 00[ 	]+mov[ 	]+\$0x0,%eax[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
64 [ 	]*[0-9a-f]+:[ 	]+66 8d 04 25 00 00 00 00[ 	]+lea[ 	]+0x0,%ax[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
65 [ 	]*[0-9a-f]+:[ 	]+b8 00 00 00 00[ 	]+mov[ 	]+\$0x0,%eax[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
66 [ 	]*[0-9a-f]+:[ 	]+b8 00 00 00 00[ 	]+mov[ 	]+\$0x0,%eax[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
67 [ 	]*[0-9a-f]+:[ 	]+66 8d 04 25 00 00 00 00[ 	]+lea[ 	]+0x0,%ax[ 	]+[0-9a-f]+: (R_X86_64_32|IMAGE_REL_AMD64_ADDR32)[ 	]+sym
68 [ 	]*[0-9a-f]+:[ 	]+48 c7 c0 00 00 00 00[ 	]+mov[ 	]+\$0x0,%rax
69 [ 	]*[0-9a-f]+:[ 	]+b8 00 00 00 00[ 	]+mov[ 	]+\$0x0,%eax
70 [ 	]*[0-9a-f]+:[ 	]+66 b8 00 00[ 	]+mov[ 	]+\$0x0,%ax
71 [ 	]*[0-9a-f]+:[ 	]+8d 41 ff[ 	]+lea[ 	]+-0x1\(%rcx\),%eax
72 [ 	]*[0-9a-f]+:[ 	]+8d 41 ff[ 	]+lea[ 	]+-0x1\(%rcx\),%eax
73 [ 	]*[0-9a-f]+:[ 	]+8d 41 ff[ 	]+lea[ 	]+-0x1\(%rcx\),%eax
74 [ 	]*[0-9a-f]+:[ 	]+8d 81 01 00 00 00[ 	]+lea[ 	]+0x1\(%rcx\),%eax
75 [ 	]*[0-9a-f]+:[ 	]+8d 81 01 00 00 00[ 	]+lea[ 	]+0x1\(%rcx\),%eax
76 [ 	]*[0-9a-f]+:[ 	]+8d 81 01 00 00 00[ 	]+lea[ 	]+0x1\(%rcx\),%eax
77 #pass
78