Skip to content

Commit 3dc7294

Browse files
committed
[InstCombine] Add pre-commit tests [NFC]
1 parent 975deb3 commit 3dc7294

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

llvm/test/Transforms/InstCombine/shift-logic.ll

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,36 @@ define i32 @lshr_or_extra_use(i32 %x, i32 %y, ptr %p) {
240240
ret i32 %sh1
241241
}
242242

243+
define i32 @lshr_or_extra_use_shift(i32 %x, ptr %p) {
244+
; CHECK-LABEL: @lshr_or_extra_use_shift(
245+
; CHECK-NEXT: [[SH0:%.*]] = lshr i32 [[X:%.*]], 5
246+
; CHECK-NEXT: store i32 [[SH0]], ptr [[P:%.*]], align 4
247+
; CHECK-NEXT: [[R:%.*]] = lshr i32 [[X]], 12
248+
; CHECK-NEXT: [[SH1:%.*]] = or i32 [[R]], 192
249+
; CHECK-NEXT: ret i32 [[SH1]]
250+
;
251+
%sh0 = lshr i32 %x, 5
252+
%r = or i32 %sh0, 24601
253+
store i32 %sh0, ptr %p
254+
%sh1 = lshr i32 %r, 7
255+
ret i32 %sh1
256+
}
257+
258+
define i32 @lshr_or_extra_use_var(i32 %x, i32 %y, ptr %p) {
259+
; CHECK-LABEL: @lshr_or_extra_use_var(
260+
; CHECK-NEXT: [[SH0:%.*]] = lshr i32 [[X:%.*]], 5
261+
; CHECK-NEXT: [[R:%.*]] = or i32 [[SH0]], [[Y:%.*]]
262+
; CHECK-NEXT: store i32 [[SH0]], ptr [[P:%.*]], align 4
263+
; CHECK-NEXT: [[SH1:%.*]] = lshr i32 [[R]], 7
264+
; CHECK-NEXT: ret i32 [[SH1]]
265+
;
266+
%sh0 = lshr i32 %x, 5
267+
%r = or i32 %sh0, %y
268+
store i32 %sh0, ptr %p
269+
%sh1 = lshr i32 %r, 7
270+
ret i32 %sh1
271+
}
272+
243273
; Avoid crashing on constant expressions.
244274

245275
@g = external global i32

0 commit comments

Comments
 (0)