11; 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
33; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefix=X64
44
55define 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
1414;
1515; X64-LABEL: test_udivrem_zext_ah:
1616; X64: # %bb.0:
@@ -27,13 +27,13 @@ define zeroext i8 @test_udivrem_zext_ah(i8 %x, i8 %y) {
2727}
2828
2929define 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
3737;
3838; X64-LABEL: test_urem_zext_ah:
3939; X64: # %bb.0:
@@ -47,15 +47,15 @@ define zeroext i8 @test_urem_zext_ah(i8 %x, i8 %y) {
4747}
4848
4949define 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
5959;
6060; X64-LABEL: test_urem_noext_ah:
6161; X64: # %bb.0:
@@ -71,13 +71,13 @@ define i8 @test_urem_noext_ah(i8 %x, i8 %y) {
7171}
7272
7373define 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
8181;
8282; X64-LABEL: test_urem_zext64_ah:
8383; X64: # %bb.0:
@@ -91,14 +91,14 @@ define i64 @test_urem_zext64_ah(i8 %x, i8 %y) {
9191}
9292
9393define 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
102102;
103103; X64-LABEL: test_sdivrem_sext_ah:
104104; X64: # %bb.0:
@@ -115,13 +115,13 @@ define signext i8 @test_sdivrem_sext_ah(i8 %x, i8 %y) {
115115}
116116
117117define 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
125125;
126126; X64-LABEL: test_srem_sext_ah:
127127; X64: # %bb.0:
@@ -135,15 +135,15 @@ define signext i8 @test_srem_sext_ah(i8 %x, i8 %y) {
135135}
136136
137137define 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
147147;
148148; X64-LABEL: test_srem_noext_ah:
149149; X64: # %bb.0:
@@ -159,14 +159,14 @@ define i8 @test_srem_noext_ah(i8 %x, i8 %y) {
159159}
160160
161161define 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
170170;
171171; X64-LABEL: test_srem_sext64_ah:
172172; X64: # %bb.0:
@@ -181,15 +181,15 @@ define i64 @test_srem_sext64_ah(i8 %x, i8 %y) {
181181}
182182
183183define 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
193193;
194194; X64-LABEL: pr25754:
195195; X64: # %bb.0:
0 commit comments