Skip to content

Commit 53b9d47

Browse files
committed
[X86] i256-add - replace i386 triple X32 check prefixes with X86 and add gnux32 triple tests
1 parent 5a07774 commit 53b9d47

File tree

1 file changed

+92
-67
lines changed

1 file changed

+92
-67
lines changed

llvm/test/CodeGen/X86/i256-add.ll

Lines changed: 92 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,56 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc < %s -mtriple=i386-unknown | FileCheck %s --check-prefix=X32
2+
; RUN: llc < %s -mtriple=i386-unknown | FileCheck %s --check-prefix=X86
3+
; RUN: llc < %s -mtriple=x86_64-unknown-gnux32 | FileCheck %s --check-prefixes=X32
34
; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefix=X64
45

56
define void @add(ptr %p, ptr %q) nounwind {
7+
; X86-LABEL: add:
8+
; X86: # %bb.0:
9+
; X86-NEXT: pushl %ebp
10+
; X86-NEXT: pushl %ebx
11+
; X86-NEXT: pushl %edi
12+
; X86-NEXT: pushl %esi
13+
; X86-NEXT: subl $8, %esp
14+
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
15+
; X86-NEXT: movl 28(%ecx), %eax
16+
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
17+
; X86-NEXT: movl 24(%ecx), %eax
18+
; X86-NEXT: movl %eax, (%esp) # 4-byte Spill
19+
; X86-NEXT: movl 20(%ecx), %esi
20+
; X86-NEXT: movl 16(%ecx), %edi
21+
; X86-NEXT: movl 12(%ecx), %ebx
22+
; X86-NEXT: movl 8(%ecx), %ebp
23+
; X86-NEXT: movl (%ecx), %edx
24+
; X86-NEXT: movl 4(%ecx), %ecx
25+
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
26+
; X86-NEXT: addl %edx, (%eax)
27+
; X86-NEXT: adcl %ecx, 4(%eax)
28+
; X86-NEXT: adcl %ebp, 8(%eax)
29+
; X86-NEXT: adcl %ebx, 12(%eax)
30+
; X86-NEXT: adcl %edi, 16(%eax)
31+
; X86-NEXT: adcl %esi, 20(%eax)
32+
; X86-NEXT: movl (%esp), %ecx # 4-byte Reload
33+
; X86-NEXT: adcl %ecx, 24(%eax)
34+
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
35+
; X86-NEXT: adcl %ecx, 28(%eax)
36+
; X86-NEXT: addl $8, %esp
37+
; X86-NEXT: popl %esi
38+
; X86-NEXT: popl %edi
39+
; X86-NEXT: popl %ebx
40+
; X86-NEXT: popl %ebp
41+
; X86-NEXT: retl
42+
;
643
; X32-LABEL: add:
744
; X32: # %bb.0:
8-
; X32-NEXT: pushl %ebp
9-
; X32-NEXT: pushl %ebx
10-
; X32-NEXT: pushl %edi
11-
; X32-NEXT: pushl %esi
12-
; X32-NEXT: subl $8, %esp
13-
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
14-
; X32-NEXT: movl 28(%ecx), %eax
15-
; X32-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
16-
; X32-NEXT: movl 24(%ecx), %eax
17-
; X32-NEXT: movl %eax, (%esp) # 4-byte Spill
18-
; X32-NEXT: movl 20(%ecx), %esi
19-
; X32-NEXT: movl 16(%ecx), %edi
20-
; X32-NEXT: movl 12(%ecx), %ebx
21-
; X32-NEXT: movl 8(%ecx), %ebp
22-
; X32-NEXT: movl (%ecx), %edx
23-
; X32-NEXT: movl 4(%ecx), %ecx
24-
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
25-
; X32-NEXT: addl %edx, (%eax)
26-
; X32-NEXT: adcl %ecx, 4(%eax)
27-
; X32-NEXT: adcl %ebp, 8(%eax)
28-
; X32-NEXT: adcl %ebx, 12(%eax)
29-
; X32-NEXT: adcl %edi, 16(%eax)
30-
; X32-NEXT: adcl %esi, 20(%eax)
31-
; X32-NEXT: movl (%esp), %ecx # 4-byte Reload
32-
; X32-NEXT: adcl %ecx, 24(%eax)
33-
; X32-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
34-
; X32-NEXT: adcl %ecx, 28(%eax)
35-
; X32-NEXT: addl $8, %esp
36-
; X32-NEXT: popl %esi
37-
; X32-NEXT: popl %edi
38-
; X32-NEXT: popl %ebx
39-
; X32-NEXT: popl %ebp
40-
; X32-NEXT: retl
45+
; X32-NEXT: movq 24(%esi), %rax
46+
; X32-NEXT: movq 16(%esi), %rcx
47+
; X32-NEXT: movq (%esi), %rdx
48+
; X32-NEXT: movq 8(%esi), %rsi
49+
; X32-NEXT: addq %rdx, (%edi)
50+
; X32-NEXT: adcq %rsi, 8(%edi)
51+
; X32-NEXT: adcq %rcx, 16(%edi)
52+
; X32-NEXT: adcq %rax, 24(%edi)
53+
; X32-NEXT: retq
4154
;
4255
; X64-LABEL: add:
4356
; X64: # %bb.0:
@@ -57,41 +70,53 @@ define void @add(ptr %p, ptr %q) nounwind {
5770
ret void
5871
}
5972
define void @sub(ptr %p, ptr %q) nounwind {
73+
; X86-LABEL: sub:
74+
; X86: # %bb.0:
75+
; X86-NEXT: pushl %ebp
76+
; X86-NEXT: pushl %ebx
77+
; X86-NEXT: pushl %edi
78+
; X86-NEXT: pushl %esi
79+
; X86-NEXT: subl $8, %esp
80+
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
81+
; X86-NEXT: movl 28(%ecx), %eax
82+
; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
83+
; X86-NEXT: movl 24(%ecx), %eax
84+
; X86-NEXT: movl %eax, (%esp) # 4-byte Spill
85+
; X86-NEXT: movl 20(%ecx), %esi
86+
; X86-NEXT: movl 16(%ecx), %edi
87+
; X86-NEXT: movl 12(%ecx), %ebx
88+
; X86-NEXT: movl 8(%ecx), %ebp
89+
; X86-NEXT: movl (%ecx), %edx
90+
; X86-NEXT: movl 4(%ecx), %ecx
91+
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
92+
; X86-NEXT: subl %edx, (%eax)
93+
; X86-NEXT: sbbl %ecx, 4(%eax)
94+
; X86-NEXT: sbbl %ebp, 8(%eax)
95+
; X86-NEXT: sbbl %ebx, 12(%eax)
96+
; X86-NEXT: sbbl %edi, 16(%eax)
97+
; X86-NEXT: sbbl %esi, 20(%eax)
98+
; X86-NEXT: movl (%esp), %ecx # 4-byte Reload
99+
; X86-NEXT: sbbl %ecx, 24(%eax)
100+
; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
101+
; X86-NEXT: sbbl %ecx, 28(%eax)
102+
; X86-NEXT: addl $8, %esp
103+
; X86-NEXT: popl %esi
104+
; X86-NEXT: popl %edi
105+
; X86-NEXT: popl %ebx
106+
; X86-NEXT: popl %ebp
107+
; X86-NEXT: retl
108+
;
60109
; X32-LABEL: sub:
61110
; X32: # %bb.0:
62-
; X32-NEXT: pushl %ebp
63-
; X32-NEXT: pushl %ebx
64-
; X32-NEXT: pushl %edi
65-
; X32-NEXT: pushl %esi
66-
; X32-NEXT: subl $8, %esp
67-
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
68-
; X32-NEXT: movl 28(%ecx), %eax
69-
; X32-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
70-
; X32-NEXT: movl 24(%ecx), %eax
71-
; X32-NEXT: movl %eax, (%esp) # 4-byte Spill
72-
; X32-NEXT: movl 20(%ecx), %esi
73-
; X32-NEXT: movl 16(%ecx), %edi
74-
; X32-NEXT: movl 12(%ecx), %ebx
75-
; X32-NEXT: movl 8(%ecx), %ebp
76-
; X32-NEXT: movl (%ecx), %edx
77-
; X32-NEXT: movl 4(%ecx), %ecx
78-
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
79-
; X32-NEXT: subl %edx, (%eax)
80-
; X32-NEXT: sbbl %ecx, 4(%eax)
81-
; X32-NEXT: sbbl %ebp, 8(%eax)
82-
; X32-NEXT: sbbl %ebx, 12(%eax)
83-
; X32-NEXT: sbbl %edi, 16(%eax)
84-
; X32-NEXT: sbbl %esi, 20(%eax)
85-
; X32-NEXT: movl (%esp), %ecx # 4-byte Reload
86-
; X32-NEXT: sbbl %ecx, 24(%eax)
87-
; X32-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
88-
; X32-NEXT: sbbl %ecx, 28(%eax)
89-
; X32-NEXT: addl $8, %esp
90-
; X32-NEXT: popl %esi
91-
; X32-NEXT: popl %edi
92-
; X32-NEXT: popl %ebx
93-
; X32-NEXT: popl %ebp
94-
; X32-NEXT: retl
111+
; X32-NEXT: movq 24(%esi), %rax
112+
; X32-NEXT: movq 16(%esi), %rcx
113+
; X32-NEXT: movq (%esi), %rdx
114+
; X32-NEXT: movq 8(%esi), %rsi
115+
; X32-NEXT: subq %rdx, (%edi)
116+
; X32-NEXT: sbbq %rsi, 8(%edi)
117+
; X32-NEXT: sbbq %rcx, 16(%edi)
118+
; X32-NEXT: sbbq %rax, 24(%edi)
119+
; X32-NEXT: retq
95120
;
96121
; X64-LABEL: sub:
97122
; X64: # %bb.0:

0 commit comments

Comments
 (0)