1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
- ; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s --check-prefix=X32
2
+ ; RUN: llc < %s -mtriple=i686-unknown | FileCheck %s --check-prefix=X86
3
3
; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefix=X64
4
4
5
5
define void @si64 (i64 %x , i64 %y , ptr %p , ptr %q ) nounwind {
6
- ; X32 -LABEL: si64:
7
- ; 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: movl {{[0-9]+}}(%esp), %ebx
13
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ebp
14
- ; X32 -NEXT: pushl %ebp
15
- ; X32 -NEXT: pushl %ebx
16
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
17
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
18
- ; X32 -NEXT: calll __divdi3
19
- ; X32 -NEXT: addl $16, %esp
20
- ; X32 -NEXT: movl %eax, %esi
21
- ; X32 -NEXT: movl %edx, %edi
22
- ; X32 -NEXT: pushl %ebp
23
- ; X32 -NEXT: pushl %ebx
24
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
25
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
26
- ; X32 -NEXT: calll __moddi3
27
- ; X32 -NEXT: addl $16, %esp
28
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
29
- ; X32 -NEXT: movl %edi, 4(%ecx)
30
- ; X32 -NEXT: movl %esi, (%ecx)
31
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
32
- ; X32 -NEXT: movl %edx, 4(%ecx)
33
- ; X32 -NEXT: movl %eax, (%ecx)
34
- ; X32 -NEXT: popl %esi
35
- ; X32 -NEXT: popl %edi
36
- ; X32 -NEXT: popl %ebx
37
- ; X32 -NEXT: popl %ebp
38
- ; X32 -NEXT: retl
6
+ ; X86 -LABEL: si64:
7
+ ; X86 : # %bb.0:
8
+ ; X86 -NEXT: pushl %ebp
9
+ ; X86 -NEXT: pushl %ebx
10
+ ; X86 -NEXT: pushl %edi
11
+ ; X86 -NEXT: pushl %esi
12
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ebx
13
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ebp
14
+ ; X86 -NEXT: pushl %ebp
15
+ ; X86 -NEXT: pushl %ebx
16
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
17
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
18
+ ; X86 -NEXT: calll __divdi3
19
+ ; X86 -NEXT: addl $16, %esp
20
+ ; X86 -NEXT: movl %eax, %esi
21
+ ; X86 -NEXT: movl %edx, %edi
22
+ ; X86 -NEXT: pushl %ebp
23
+ ; X86 -NEXT: pushl %ebx
24
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
25
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
26
+ ; X86 -NEXT: calll __moddi3
27
+ ; X86 -NEXT: addl $16, %esp
28
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
29
+ ; X86 -NEXT: movl %edi, 4(%ecx)
30
+ ; X86 -NEXT: movl %esi, (%ecx)
31
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
32
+ ; X86 -NEXT: movl %edx, 4(%ecx)
33
+ ; X86 -NEXT: movl %eax, (%ecx)
34
+ ; X86 -NEXT: popl %esi
35
+ ; X86 -NEXT: popl %edi
36
+ ; X86 -NEXT: popl %ebx
37
+ ; X86 -NEXT: popl %ebp
38
+ ; X86 -NEXT: retl
39
39
;
40
40
; X64-LABEL: si64:
41
41
; X64: # %bb.0:
@@ -54,18 +54,18 @@ define void @si64(i64 %x, i64 %y, ptr %p, ptr %q) nounwind {
54
54
}
55
55
56
56
define void @si32 (i32 %x , i32 %y , ptr %p , ptr %q ) nounwind {
57
- ; X32 -LABEL: si32:
58
- ; X32 : # %bb.0:
59
- ; X32 -NEXT: pushl %esi
60
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
61
- ; X32 -NEXT: cltd
62
- ; X32 -NEXT: idivl {{[0-9]+}}(%esp)
63
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
64
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %esi
65
- ; X32 -NEXT: movl %eax, (%esi)
66
- ; X32 -NEXT: movl %edx, (%ecx)
67
- ; X32 -NEXT: popl %esi
68
- ; X32 -NEXT: retl
57
+ ; X86 -LABEL: si32:
58
+ ; X86 : # %bb.0:
59
+ ; X86 -NEXT: pushl %esi
60
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
61
+ ; X86 -NEXT: cltd
62
+ ; X86 -NEXT: idivl {{[0-9]+}}(%esp)
63
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
64
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %esi
65
+ ; X86 -NEXT: movl %eax, (%esi)
66
+ ; X86 -NEXT: movl %edx, (%ecx)
67
+ ; X86 -NEXT: popl %esi
68
+ ; X86 -NEXT: retl
69
69
;
70
70
; X64-LABEL: si32:
71
71
; X64: # %bb.0:
@@ -84,18 +84,18 @@ define void @si32(i32 %x, i32 %y, ptr %p, ptr %q) nounwind {
84
84
}
85
85
86
86
define void @si16 (i16 %x , i16 %y , ptr %p , ptr %q ) nounwind {
87
- ; X32 -LABEL: si16:
88
- ; X32 : # %bb.0:
89
- ; X32 -NEXT: pushl %esi
90
- ; X32 -NEXT: movzwl {{[0-9]+}}(%esp), %eax
91
- ; X32 -NEXT: cwtd
92
- ; X32 -NEXT: idivw {{[0-9]+}}(%esp)
93
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
94
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %esi
95
- ; X32 -NEXT: movw %ax, (%esi)
96
- ; X32 -NEXT: movw %dx, (%ecx)
97
- ; X32 -NEXT: popl %esi
98
- ; X32 -NEXT: retl
87
+ ; X86 -LABEL: si16:
88
+ ; X86 : # %bb.0:
89
+ ; X86 -NEXT: pushl %esi
90
+ ; X86 -NEXT: movzwl {{[0-9]+}}(%esp), %eax
91
+ ; X86 -NEXT: cwtd
92
+ ; X86 -NEXT: idivw {{[0-9]+}}(%esp)
93
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
94
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %esi
95
+ ; X86 -NEXT: movw %ax, (%esi)
96
+ ; X86 -NEXT: movw %dx, (%ecx)
97
+ ; X86 -NEXT: popl %esi
98
+ ; X86 -NEXT: retl
99
99
;
100
100
; X64-LABEL: si16:
101
101
; X64: # %bb.0:
@@ -115,18 +115,18 @@ define void @si16(i16 %x, i16 %y, ptr %p, ptr %q) nounwind {
115
115
}
116
116
117
117
define void @si8 (i8 %x , i8 %y , ptr %p , ptr %q ) nounwind {
118
- ; X32 -LABEL: si8:
119
- ; X32 : # %bb.0:
120
- ; X32 -NEXT: pushl %ebx
121
- ; X32 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
122
- ; X32 -NEXT: idivb {{[0-9]+}}(%esp)
123
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
124
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %edx
125
- ; X32 -NEXT: movsbl %ah, %ebx
126
- ; X32 -NEXT: movb %al, (%edx)
127
- ; X32 -NEXT: movb %bl, (%ecx)
128
- ; X32 -NEXT: popl %ebx
129
- ; X32 -NEXT: retl
118
+ ; X86 -LABEL: si8:
119
+ ; X86 : # %bb.0:
120
+ ; X86 -NEXT: pushl %ebx
121
+ ; X86 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
122
+ ; X86 -NEXT: idivb {{[0-9]+}}(%esp)
123
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
124
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %edx
125
+ ; X86 -NEXT: movsbl %ah, %ebx
126
+ ; X86 -NEXT: movb %al, (%edx)
127
+ ; X86 -NEXT: movb %bl, (%ecx)
128
+ ; X86 -NEXT: popl %ebx
129
+ ; X86 -NEXT: retl
130
130
;
131
131
; X64-LABEL: si8:
132
132
; X64: # %bb.0:
@@ -144,39 +144,39 @@ define void @si8(i8 %x, i8 %y, ptr %p, ptr %q) nounwind {
144
144
}
145
145
146
146
define void @ui64 (i64 %x , i64 %y , ptr %p , ptr %q ) nounwind {
147
- ; X32 -LABEL: ui64:
148
- ; X32 : # %bb.0:
149
- ; X32 -NEXT: pushl %ebp
150
- ; X32 -NEXT: pushl %ebx
151
- ; X32 -NEXT: pushl %edi
152
- ; X32 -NEXT: pushl %esi
153
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ebx
154
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ebp
155
- ; X32 -NEXT: pushl %ebp
156
- ; X32 -NEXT: pushl %ebx
157
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
158
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
159
- ; X32 -NEXT: calll __udivdi3
160
- ; X32 -NEXT: addl $16, %esp
161
- ; X32 -NEXT: movl %eax, %esi
162
- ; X32 -NEXT: movl %edx, %edi
163
- ; X32 -NEXT: pushl %ebp
164
- ; X32 -NEXT: pushl %ebx
165
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
166
- ; X32 -NEXT: pushl {{[0-9]+}}(%esp)
167
- ; X32 -NEXT: calll __umoddi3
168
- ; X32 -NEXT: addl $16, %esp
169
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
170
- ; X32 -NEXT: movl %edi, 4(%ecx)
171
- ; X32 -NEXT: movl %esi, (%ecx)
172
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
173
- ; X32 -NEXT: movl %edx, 4(%ecx)
174
- ; X32 -NEXT: movl %eax, (%ecx)
175
- ; X32 -NEXT: popl %esi
176
- ; X32 -NEXT: popl %edi
177
- ; X32 -NEXT: popl %ebx
178
- ; X32 -NEXT: popl %ebp
179
- ; X32 -NEXT: retl
147
+ ; X86 -LABEL: ui64:
148
+ ; X86 : # %bb.0:
149
+ ; X86 -NEXT: pushl %ebp
150
+ ; X86 -NEXT: pushl %ebx
151
+ ; X86 -NEXT: pushl %edi
152
+ ; X86 -NEXT: pushl %esi
153
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ebx
154
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ebp
155
+ ; X86 -NEXT: pushl %ebp
156
+ ; X86 -NEXT: pushl %ebx
157
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
158
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
159
+ ; X86 -NEXT: calll __udivdi3
160
+ ; X86 -NEXT: addl $16, %esp
161
+ ; X86 -NEXT: movl %eax, %esi
162
+ ; X86 -NEXT: movl %edx, %edi
163
+ ; X86 -NEXT: pushl %ebp
164
+ ; X86 -NEXT: pushl %ebx
165
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
166
+ ; X86 -NEXT: pushl {{[0-9]+}}(%esp)
167
+ ; X86 -NEXT: calll __umoddi3
168
+ ; X86 -NEXT: addl $16, %esp
169
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
170
+ ; X86 -NEXT: movl %edi, 4(%ecx)
171
+ ; X86 -NEXT: movl %esi, (%ecx)
172
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
173
+ ; X86 -NEXT: movl %edx, 4(%ecx)
174
+ ; X86 -NEXT: movl %eax, (%ecx)
175
+ ; X86 -NEXT: popl %esi
176
+ ; X86 -NEXT: popl %edi
177
+ ; X86 -NEXT: popl %ebx
178
+ ; X86 -NEXT: popl %ebp
179
+ ; X86 -NEXT: retl
180
180
;
181
181
; X64-LABEL: ui64:
182
182
; X64: # %bb.0:
@@ -195,18 +195,18 @@ define void @ui64(i64 %x, i64 %y, ptr %p, ptr %q) nounwind {
195
195
}
196
196
197
197
define void @ui32 (i32 %x , i32 %y , ptr %p , ptr %q ) nounwind {
198
- ; X32 -LABEL: ui32:
199
- ; X32 : # %bb.0:
200
- ; X32 -NEXT: pushl %esi
201
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %eax
202
- ; X32 -NEXT: xorl %edx, %edx
203
- ; X32 -NEXT: divl {{[0-9]+}}(%esp)
204
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
205
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %esi
206
- ; X32 -NEXT: movl %eax, (%esi)
207
- ; X32 -NEXT: movl %edx, (%ecx)
208
- ; X32 -NEXT: popl %esi
209
- ; X32 -NEXT: retl
198
+ ; X86 -LABEL: ui32:
199
+ ; X86 : # %bb.0:
200
+ ; X86 -NEXT: pushl %esi
201
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %eax
202
+ ; X86 -NEXT: xorl %edx, %edx
203
+ ; X86 -NEXT: divl {{[0-9]+}}(%esp)
204
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
205
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %esi
206
+ ; X86 -NEXT: movl %eax, (%esi)
207
+ ; X86 -NEXT: movl %edx, (%ecx)
208
+ ; X86 -NEXT: popl %esi
209
+ ; X86 -NEXT: retl
210
210
;
211
211
; X64-LABEL: ui32:
212
212
; X64: # %bb.0:
@@ -225,18 +225,18 @@ define void @ui32(i32 %x, i32 %y, ptr %p, ptr %q) nounwind {
225
225
}
226
226
227
227
define void @ui16 (i16 %x , i16 %y , ptr %p , ptr %q ) nounwind {
228
- ; X32 -LABEL: ui16:
229
- ; X32 : # %bb.0:
230
- ; X32 -NEXT: pushl %esi
231
- ; X32 -NEXT: movzwl {{[0-9]+}}(%esp), %eax
232
- ; X32 -NEXT: xorl %edx, %edx
233
- ; X32 -NEXT: divw {{[0-9]+}}(%esp)
234
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
235
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %esi
236
- ; X32 -NEXT: movw %ax, (%esi)
237
- ; X32 -NEXT: movw %dx, (%ecx)
238
- ; X32 -NEXT: popl %esi
239
- ; X32 -NEXT: retl
228
+ ; X86 -LABEL: ui16:
229
+ ; X86 : # %bb.0:
230
+ ; X86 -NEXT: pushl %esi
231
+ ; X86 -NEXT: movzwl {{[0-9]+}}(%esp), %eax
232
+ ; X86 -NEXT: xorl %edx, %edx
233
+ ; X86 -NEXT: divw {{[0-9]+}}(%esp)
234
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
235
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %esi
236
+ ; X86 -NEXT: movw %ax, (%esi)
237
+ ; X86 -NEXT: movw %dx, (%ecx)
238
+ ; X86 -NEXT: popl %esi
239
+ ; X86 -NEXT: retl
240
240
;
241
241
; X64-LABEL: ui16:
242
242
; X64: # %bb.0:
@@ -256,18 +256,18 @@ define void @ui16(i16 %x, i16 %y, ptr %p, ptr %q) nounwind {
256
256
}
257
257
258
258
define void @ui8 (i8 %x , i8 %y , ptr %p , ptr %q ) nounwind {
259
- ; X32 -LABEL: ui8:
260
- ; X32 : # %bb.0:
261
- ; X32 -NEXT: pushl %ebx
262
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
263
- ; X32 -NEXT: divb {{[0-9]+}}(%esp)
264
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %ecx
265
- ; X32 -NEXT: movl {{[0-9]+}}(%esp), %edx
266
- ; X32 -NEXT: movzbl %ah, %ebx
267
- ; X32 -NEXT: movb %al, (%edx)
268
- ; X32 -NEXT: movb %bl, (%ecx)
269
- ; X32 -NEXT: popl %ebx
270
- ; X32 -NEXT: retl
259
+ ; X86 -LABEL: ui8:
260
+ ; X86 : # %bb.0:
261
+ ; X86 -NEXT: pushl %ebx
262
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
263
+ ; X86 -NEXT: divb {{[0-9]+}}(%esp)
264
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %ecx
265
+ ; X86 -NEXT: movl {{[0-9]+}}(%esp), %edx
266
+ ; X86 -NEXT: movzbl %ah, %ebx
267
+ ; X86 -NEXT: movb %al, (%edx)
268
+ ; X86 -NEXT: movb %bl, (%ecx)
269
+ ; X86 -NEXT: popl %ebx
270
+ ; X86 -NEXT: retl
271
271
;
272
272
; X64-LABEL: ui8:
273
273
; X64: # %bb.0:
0 commit comments