Skip to content

Commit 388daea

Browse files
committed
[InstCombine] Add pre-commit tests. NFC.
1 parent 7e1fa09 commit 388daea

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
2+
; RUN: opt -S -passes=instcombine < %s | FileCheck %s
3+
4+
define i8 @pr142518(ptr %p, i8 %x, i1 %c) {
5+
; CHECK-LABEL: define i8 @pr142518(
6+
; CHECK-SAME: ptr [[P:%.*]], i8 [[X:%.*]], i1 [[C:%.*]]) {
7+
; CHECK-NEXT: [[ENTRY:.*:]]
8+
; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i8 [[X]], -2
9+
; CHECK-NEXT: br label %[[LOOP:.*]]
10+
; CHECK: [[LOOP]]:
11+
; CHECK-NEXT: [[EXT2:%.*]] = zext i1 [[CMP]] to i8
12+
; CHECK-NEXT: store i8 [[EXT2]], ptr [[P]], align 1
13+
; CHECK-NEXT: br i1 false, label %[[LOOP]], label %[[EXIT:.*]]
14+
; CHECK: [[EXIT]]:
15+
; CHECK-NEXT: [[EXT3:%.*]] = zext i1 [[CMP]] to i8
16+
; CHECK-NEXT: ret i8 [[EXT3]]
17+
;
18+
entry:
19+
%flag = alloca i8, align 1
20+
%cmp = icmp slt i8 %x, -1
21+
br label %loop
22+
23+
loop:
24+
%phi = phi i1 [ %cmp, %entry ], [ %c, %loop ]
25+
%not1 = xor i1 %phi, true
26+
%or = or i1 %cmp, %not1
27+
%not2 = xor i1 %or, true
28+
%ext2 = zext i1 %not2 to i8
29+
store i8 %ext2, ptr %p, align 1
30+
store i8 1, ptr %flag, align 1
31+
%flagv = load i8, ptr %flag, align 1
32+
%cond = icmp eq i8 %flagv, 0
33+
br i1 %cond, label %loop, label %exit
34+
35+
exit:
36+
%not3 = xor i1 %or, true
37+
%ext3 = zext i1 %not3 to i8
38+
ret i8 %ext3
39+
}

0 commit comments

Comments
 (0)