Skip to content

Commit 1acbd2b

Browse files
committed
pre-commit tests
1 parent 940108b commit 1acbd2b

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,41 @@ end:
13371337
ret i32 %div
13381338
}
13391339

1340+
define i32 @scalar_i32_const_pow2_divisor(i32 %x, ptr %rem) nounwind {
1341+
; X86-LABEL: scalar_i32_const_pow2_divisor:
1342+
; X86: # %bb.0:
1343+
; X86-NEXT: pushl %esi
1344+
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
1345+
; X86-NEXT: movl {{[0-9]+}}(%esp), %edx
1346+
; X86-NEXT: leal 255(%edx), %eax
1347+
; X86-NEXT: testl %edx, %edx
1348+
; X86-NEXT: cmovnsl %edx, %eax
1349+
; X86-NEXT: movl %eax, %esi
1350+
; X86-NEXT: andl $-256, %esi
1351+
; X86-NEXT: subl %esi, %edx
1352+
; X86-NEXT: movl %edx, (%ecx)
1353+
; X86-NEXT: sarl $8, %eax
1354+
; X86-NEXT: popl %esi
1355+
; X86-NEXT: retl
1356+
;
1357+
; X64-LABEL: scalar_i32_const_pow2_divisor:
1358+
; X64: # %bb.0:
1359+
; X64-NEXT: # kill: def $edi killed $edi def $rdi
1360+
; X64-NEXT: leal 255(%rdi), %eax
1361+
; X64-NEXT: testl %edi, %edi
1362+
; X64-NEXT: cmovnsl %edi, %eax
1363+
; X64-NEXT: movl %eax, %ecx
1364+
; X64-NEXT: andl $-256, %ecx
1365+
; X64-NEXT: subl %ecx, %edi
1366+
; X64-NEXT: movl %edi, (%rsi)
1367+
; X64-NEXT: sarl $8, %eax
1368+
; X64-NEXT: retq
1369+
%rem1 = srem i32 %x, 256
1370+
store i32 %rem1, ptr %rem, align 4
1371+
%div = sdiv i32 %x, 256
1372+
ret i32 %div
1373+
}
1374+
13401375
define i32 @negative_different_x(i32 %x0, i32 %x1, i32 %y, ptr %divdst) nounwind {
13411376
; X86-LABEL: negative_different_x:
13421377
; X86: # %bb.0:

llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,6 +1291,29 @@ end:
12911291
ret i32 %div
12921292
}
12931293

1294+
define i32 @scalar_i32_const_pow2_divisor(i32 %x, ptr %rem) {
1295+
; X86-LABEL: scalar_i32_const_pow2_divisor:
1296+
; X86: # %bb.0:
1297+
; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
1298+
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
1299+
; X86-NEXT: movzbl %al, %edx
1300+
; X86-NEXT: movl %edx, (%ecx)
1301+
; X86-NEXT: shrl $8, %eax
1302+
; X86-NEXT: retl
1303+
;
1304+
; X64-LABEL: scalar_i32_const_pow2_divisor:
1305+
; X64: # %bb.0:
1306+
; X64-NEXT: movl %edi, %eax
1307+
; X64-NEXT: movzbl %al, %ecx
1308+
; X64-NEXT: movl %ecx, (%rsi)
1309+
; X64-NEXT: shrl $8, %eax
1310+
; X64-NEXT: retq
1311+
%rem1 = urem i32 %x, 256
1312+
store i32 %rem1, ptr %rem, align 4
1313+
%div = udiv i32 %x, 256
1314+
ret i32 %div
1315+
}
1316+
12941317
define i32 @negative_different_x(i32 %x0, i32 %x1, i32 %y, ptr %divdst) nounwind {
12951318
; X86-LABEL: negative_different_x:
12961319
; X86: # %bb.0:

0 commit comments

Comments
 (0)