Skip to content

Commit 76cbd41

Browse files
AZero13tstellar
authored andcommitted
[X86] Pre-commit tests (NFC)
1 parent e7c816b commit 76cbd41

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

llvm/test/CodeGen/X86/sar_fold.ll

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,44 @@ define i32 @shl24sar25(i32 %a) #0 {
4444
%2 = ashr exact i32 %1, 25
4545
ret i32 %2
4646
}
47+
48+
define void @shl144sar48(ptr %p) #0 {
49+
; CHECK-LABEL: shl144sar48:
50+
; CHECK: # %bb.0:
51+
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
52+
; CHECK-NEXT: movswl (%eax), %ecx
53+
; CHECK-NEXT: movl %ecx, %edx
54+
; CHECK-NEXT: sarl $31, %edx
55+
; CHECK-NEXT: shldl $2, %ecx, %edx
56+
; CHECK-NEXT: shll $2, %ecx
57+
; CHECK-NEXT: movl %ecx, 12(%eax)
58+
; CHECK-NEXT: movl %edx, 16(%eax)
59+
; CHECK-NEXT: movl $0, 8(%eax)
60+
; CHECK-NEXT: movl $0, 4(%eax)
61+
; CHECK-NEXT: movl $0, (%eax)
62+
; CHECK-NEXT: retl
63+
%a = load i160, ptr %p
64+
%1 = shl i160 %a, 144
65+
%2 = ashr exact i160 %1, 46
66+
store i160 %2, ptr %p
67+
ret void
68+
}
69+
70+
define void @shl144sar2(ptr %p) #0 {
71+
; CHECK-LABEL: shl144sar2:
72+
; CHECK: # %bb.0:
73+
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %eax
74+
; CHECK-NEXT: movswl (%eax), %ecx
75+
; CHECK-NEXT: sarl $31, %ecx
76+
; CHECK-NEXT: movl %ecx, 16(%eax)
77+
; CHECK-NEXT: movl %ecx, 8(%eax)
78+
; CHECK-NEXT: movl %ecx, 12(%eax)
79+
; CHECK-NEXT: movl %ecx, 4(%eax)
80+
; CHECK-NEXT: movl %ecx, (%eax)
81+
; CHECK-NEXT: retl
82+
%a = load i160, ptr %p
83+
%1 = shl i160 %a, 144
84+
%2 = ashr exact i160 %1, 2
85+
store i160 %2, ptr %p
86+
ret void
87+
}

0 commit comments

Comments
 (0)