Skip to content

Commit e8b0a16

Browse files
committed
[X86] Add test coverage for #55714
1 parent 4b6c608 commit e8b0a16

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

llvm/test/CodeGen/X86/addr-mode-matcher-3.ll

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,48 @@ define i64 @add_shl_zext(ptr %ptr, i8 %arg) nounwind {
9898
%sum = add i64 %val, %shl
9999
ret i64 %sum
100100
}
101+
102+
define i32 @PR55714_i32(i32 %n, i32 %q) {
103+
; X86-LABEL: PR55714_i32:
104+
; X86: # %bb.0:
105+
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
106+
; X86-NEXT: leal (,%ecx,8), %eax
107+
; X86-NEXT: subl %ecx, %eax
108+
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
109+
; X86-NEXT: retl
110+
;
111+
; X64-LABEL: PR55714_i32:
112+
; X64: # %bb.0:
113+
; X64-NEXT: # kill: def $esi killed $esi def $rsi
114+
; X64-NEXT: leal (,%rsi,8), %eax
115+
; X64-NEXT: subl %esi, %eax
116+
; X64-NEXT: addl %edi, %eax
117+
; X64-NEXT: retq
118+
%mul = mul i32 %q, 7
119+
%add = add i32 %mul, %n
120+
ret i32 %add
121+
}
122+
123+
define i64 @PR55714_i64(i64 %n, i64 %q) {
124+
; X86-LABEL: PR55714_i64:
125+
; X86: # %bb.0:
126+
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
127+
; X86-NEXT: leal (,%eax,8), %ecx
128+
; X86-NEXT: subl %eax, %ecx
129+
; X86-NEXT: movl $7, %eax
130+
; X86-NEXT: mull {{[0-9]+}}(%esp)
131+
; X86-NEXT: addl %ecx, %edx
132+
; X86-NEXT: addl {{[0-9]+}}(%esp), %eax
133+
; X86-NEXT: adcl {{[0-9]+}}(%esp), %edx
134+
; X86-NEXT: retl
135+
;
136+
; X64-LABEL: PR55714_i64:
137+
; X64: # %bb.0:
138+
; X64-NEXT: leaq (,%rsi,8), %rax
139+
; X64-NEXT: subq %rsi, %rax
140+
; X64-NEXT: addq %rdi, %rax
141+
; X64-NEXT: retq
142+
%mul = mul i64 %q, 7
143+
%add = add i64 %mul, %n
144+
ret i64 %add
145+
}

0 commit comments

Comments
 (0)