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 zeroext i8 @test_udivrem_zext_ah (i8 %x , i8 %y ) {
6
- ; X32 -LABEL: test_udivrem_zext_ah:
7
- ; X32 : # %bb.0:
8
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
9
- ; X32 -NEXT: divb {{[0-9]+}}(%esp)
10
- ; X32 -NEXT: movzbl %ah, %ecx
11
- ; X32 -NEXT: movb %al, z
12
- ; X32 -NEXT: movl %ecx, %eax
13
- ; X32 -NEXT: retl
6
+ ; X86 -LABEL: test_udivrem_zext_ah:
7
+ ; X86 : # %bb.0:
8
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
9
+ ; X86 -NEXT: divb {{[0-9]+}}(%esp)
10
+ ; X86 -NEXT: movzbl %ah, %ecx
11
+ ; X86 -NEXT: movb %al, z
12
+ ; X86 -NEXT: movl %ecx, %eax
13
+ ; X86 -NEXT: retl
14
14
;
15
15
; X64-LABEL: test_udivrem_zext_ah:
16
16
; X64: # %bb.0:
@@ -27,13 +27,13 @@ define zeroext i8 @test_udivrem_zext_ah(i8 %x, i8 %y) {
27
27
}
28
28
29
29
define zeroext i8 @test_urem_zext_ah (i8 %x , i8 %y ) {
30
- ; X32 -LABEL: test_urem_zext_ah:
31
- ; X32 : # %bb.0:
32
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
33
- ; X32 -NEXT: divb {{[0-9]+}}(%esp)
34
- ; X32 -NEXT: movzbl %ah, %eax
35
- ; X32 -NEXT: # kill: def $al killed $al killed $eax
36
- ; X32 -NEXT: retl
30
+ ; X86 -LABEL: test_urem_zext_ah:
31
+ ; X86 : # %bb.0:
32
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
33
+ ; X86 -NEXT: divb {{[0-9]+}}(%esp)
34
+ ; X86 -NEXT: movzbl %ah, %eax
35
+ ; X86 -NEXT: # kill: def $al killed $al killed $eax
36
+ ; X86 -NEXT: retl
37
37
;
38
38
; X64-LABEL: test_urem_zext_ah:
39
39
; X64: # %bb.0:
@@ -47,15 +47,15 @@ define zeroext i8 @test_urem_zext_ah(i8 %x, i8 %y) {
47
47
}
48
48
49
49
define i8 @test_urem_noext_ah (i8 %x , i8 %y ) {
50
- ; X32 -LABEL: test_urem_noext_ah:
51
- ; X32 : # %bb.0:
52
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %ecx
53
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
54
- ; X32 -NEXT: divb %cl
55
- ; X32 -NEXT: movzbl %ah, %eax
56
- ; X32 -NEXT: addb %cl, %al
57
- ; X32 -NEXT: # kill: def $al killed $al killed $eax
58
- ; X32 -NEXT: retl
50
+ ; X86 -LABEL: test_urem_noext_ah:
51
+ ; X86 : # %bb.0:
52
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %ecx
53
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
54
+ ; X86 -NEXT: divb %cl
55
+ ; X86 -NEXT: movzbl %ah, %eax
56
+ ; X86 -NEXT: addb %cl, %al
57
+ ; X86 -NEXT: # kill: def $al killed $al killed $eax
58
+ ; X86 -NEXT: retl
59
59
;
60
60
; X64-LABEL: test_urem_noext_ah:
61
61
; X64: # %bb.0:
@@ -71,13 +71,13 @@ define i8 @test_urem_noext_ah(i8 %x, i8 %y) {
71
71
}
72
72
73
73
define i64 @test_urem_zext64_ah (i8 %x , i8 %y ) {
74
- ; X32 -LABEL: test_urem_zext64_ah:
75
- ; X32 : # %bb.0:
76
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
77
- ; X32 -NEXT: divb {{[0-9]+}}(%esp)
78
- ; X32 -NEXT: movzbl %ah, %eax
79
- ; X32 -NEXT: xorl %edx, %edx
80
- ; X32 -NEXT: retl
74
+ ; X86 -LABEL: test_urem_zext64_ah:
75
+ ; X86 : # %bb.0:
76
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
77
+ ; X86 -NEXT: divb {{[0-9]+}}(%esp)
78
+ ; X86 -NEXT: movzbl %ah, %eax
79
+ ; X86 -NEXT: xorl %edx, %edx
80
+ ; X86 -NEXT: retl
81
81
;
82
82
; X64-LABEL: test_urem_zext64_ah:
83
83
; X64: # %bb.0:
@@ -91,14 +91,14 @@ define i64 @test_urem_zext64_ah(i8 %x, i8 %y) {
91
91
}
92
92
93
93
define signext i8 @test_sdivrem_sext_ah (i8 %x , i8 %y ) {
94
- ; X32 -LABEL: test_sdivrem_sext_ah:
95
- ; X32 : # %bb.0:
96
- ; X32 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
97
- ; X32 -NEXT: idivb {{[0-9]+}}(%esp)
98
- ; X32 -NEXT: movsbl %ah, %ecx
99
- ; X32 -NEXT: movb %al, z
100
- ; X32 -NEXT: movl %ecx, %eax
101
- ; X32 -NEXT: retl
94
+ ; X86 -LABEL: test_sdivrem_sext_ah:
95
+ ; X86 : # %bb.0:
96
+ ; X86 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
97
+ ; X86 -NEXT: idivb {{[0-9]+}}(%esp)
98
+ ; X86 -NEXT: movsbl %ah, %ecx
99
+ ; X86 -NEXT: movb %al, z
100
+ ; X86 -NEXT: movl %ecx, %eax
101
+ ; X86 -NEXT: retl
102
102
;
103
103
; X64-LABEL: test_sdivrem_sext_ah:
104
104
; X64: # %bb.0:
@@ -115,13 +115,13 @@ define signext i8 @test_sdivrem_sext_ah(i8 %x, i8 %y) {
115
115
}
116
116
117
117
define signext i8 @test_srem_sext_ah (i8 %x , i8 %y ) {
118
- ; X32 -LABEL: test_srem_sext_ah:
119
- ; X32 : # %bb.0:
120
- ; X32 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
121
- ; X32 -NEXT: idivb {{[0-9]+}}(%esp)
122
- ; X32 -NEXT: movsbl %ah, %eax
123
- ; X32 -NEXT: # kill: def $al killed $al killed $eax
124
- ; X32 -NEXT: retl
118
+ ; X86 -LABEL: test_srem_sext_ah:
119
+ ; X86 : # %bb.0:
120
+ ; X86 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
121
+ ; X86 -NEXT: idivb {{[0-9]+}}(%esp)
122
+ ; X86 -NEXT: movsbl %ah, %eax
123
+ ; X86 -NEXT: # kill: def $al killed $al killed $eax
124
+ ; X86 -NEXT: retl
125
125
;
126
126
; X64-LABEL: test_srem_sext_ah:
127
127
; X64: # %bb.0:
@@ -135,15 +135,15 @@ define signext i8 @test_srem_sext_ah(i8 %x, i8 %y) {
135
135
}
136
136
137
137
define i8 @test_srem_noext_ah (i8 %x , i8 %y ) {
138
- ; X32 -LABEL: test_srem_noext_ah:
139
- ; X32 : # %bb.0:
140
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %ecx
141
- ; X32 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
142
- ; X32 -NEXT: idivb %cl
143
- ; X32 -NEXT: movsbl %ah, %eax
144
- ; X32 -NEXT: addb %cl, %al
145
- ; X32 -NEXT: # kill: def $al killed $al killed $eax
146
- ; X32 -NEXT: retl
138
+ ; X86 -LABEL: test_srem_noext_ah:
139
+ ; X86 : # %bb.0:
140
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %ecx
141
+ ; X86 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
142
+ ; X86 -NEXT: idivb %cl
143
+ ; X86 -NEXT: movsbl %ah, %eax
144
+ ; X86 -NEXT: addb %cl, %al
145
+ ; X86 -NEXT: # kill: def $al killed $al killed $eax
146
+ ; X86 -NEXT: retl
147
147
;
148
148
; X64-LABEL: test_srem_noext_ah:
149
149
; X64: # %bb.0:
@@ -159,14 +159,14 @@ define i8 @test_srem_noext_ah(i8 %x, i8 %y) {
159
159
}
160
160
161
161
define i64 @test_srem_sext64_ah (i8 %x , i8 %y ) {
162
- ; X32 -LABEL: test_srem_sext64_ah:
163
- ; X32 : # %bb.0:
164
- ; X32 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
165
- ; X32 -NEXT: idivb {{[0-9]+}}(%esp)
166
- ; X32 -NEXT: movsbl %ah, %eax
167
- ; X32 -NEXT: movl %eax, %edx
168
- ; X32 -NEXT: sarl $31, %edx
169
- ; X32 -NEXT: retl
162
+ ; X86 -LABEL: test_srem_sext64_ah:
163
+ ; X86 : # %bb.0:
164
+ ; X86 -NEXT: movsbl {{[0-9]+}}(%esp), %eax
165
+ ; X86 -NEXT: idivb {{[0-9]+}}(%esp)
166
+ ; X86 -NEXT: movsbl %ah, %eax
167
+ ; X86 -NEXT: movl %eax, %edx
168
+ ; X86 -NEXT: sarl $31, %edx
169
+ ; X86 -NEXT: retl
170
170
;
171
171
; X64-LABEL: test_srem_sext64_ah:
172
172
; X64: # %bb.0:
@@ -181,15 +181,15 @@ define i64 @test_srem_sext64_ah(i8 %x, i8 %y) {
181
181
}
182
182
183
183
define i64 @pr25754 (i8 %a , i8 %c ) {
184
- ; X32 -LABEL: pr25754:
185
- ; X32 : # %bb.0:
186
- ; X32 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
187
- ; X32 -NEXT: divb {{[0-9]+}}(%esp)
188
- ; X32 -NEXT: movzbl %ah, %ecx
189
- ; X32 -NEXT: movzbl %al, %eax
190
- ; X32 -NEXT: addl %ecx, %eax
191
- ; X32 -NEXT: xorl %edx, %edx
192
- ; X32 -NEXT: retl
184
+ ; X86 -LABEL: pr25754:
185
+ ; X86 : # %bb.0:
186
+ ; X86 -NEXT: movzbl {{[0-9]+}}(%esp), %eax
187
+ ; X86 -NEXT: divb {{[0-9]+}}(%esp)
188
+ ; X86 -NEXT: movzbl %ah, %ecx
189
+ ; X86 -NEXT: movzbl %al, %eax
190
+ ; X86 -NEXT: addl %ecx, %eax
191
+ ; X86 -NEXT: xorl %edx, %edx
192
+ ; X86 -NEXT: retl
193
193
;
194
194
; X64-LABEL: pr25754:
195
195
; X64: # %bb.0:
0 commit comments