Skip to content

Commit 672b3d0

Browse files
committed
[LICM] Add test for #64897 (NFC)
1 parent 2cfe7b1 commit 672b3d0

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

llvm/test/Transforms/LICM/pr64897.ll

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2+
; RUN: opt -S -passes=licm < %s | FileCheck %s
3+
4+
; FIXME: This is a miscompile.
5+
define void @test(i1 %c, i8 %x) {
6+
; CHECK-LABEL: define void @test(
7+
; CHECK-SAME: i1 [[C:%.*]], i8 [[X:%.*]]) {
8+
; CHECK-NEXT: start:
9+
; CHECK-NEXT: [[A:%.*]] = alloca [16 x i8], align 8
10+
; CHECK-NEXT: [[P:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 8
11+
; CHECK-NEXT: [[P_COPY:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 8
12+
; CHECK-NEXT: [[P2:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 12
13+
; CHECK-NEXT: [[P2_PROMOTED:%.*]] = load i8, ptr [[P2]], align 1
14+
; CHECK-NEXT: br label [[LOOP:%.*]]
15+
; CHECK: loop:
16+
; CHECK-NEXT: [[TMP0:%.*]] = phi i8 [ 0, [[LOOP]] ], [ [[P2_PROMOTED]], [[START:%.*]] ]
17+
; CHECK-NEXT: store i32 286331153, ptr [[P]], align 4
18+
; CHECK-NEXT: store i32 34, ptr [[P_COPY]], align 4
19+
; CHECK-NEXT: store i64 3689348814741910323, ptr [[P_COPY]], align 4
20+
; CHECK-NEXT: call void @use(i8 [[TMP0]])
21+
; CHECK-NEXT: br i1 [[C]], label [[LOOP]], label [[EXIT:%.*]]
22+
; CHECK: exit:
23+
; CHECK-NEXT: store i8 0, ptr [[P2]], align 1
24+
; CHECK-NEXT: ret void
25+
;
26+
start:
27+
%a = alloca [16 x i8], align 8
28+
%p = getelementptr inbounds i8, ptr %a, i64 8
29+
%p.copy = getelementptr inbounds i8, ptr %a, i64 8
30+
%p2 = getelementptr inbounds i8, ptr %a, i64 12
31+
br label %loop
32+
33+
loop:
34+
store i32 u0x11111111, ptr %p
35+
store i32 u0x22, ptr %p.copy
36+
store i64 u0x3333333333333333, ptr %p.copy
37+
%val = load i8, ptr %p2
38+
call void @use(i8 %val)
39+
store i8 0, ptr %p2
40+
br i1 %c, label %loop, label %exit
41+
42+
exit:
43+
ret void
44+
}
45+
46+
declare void @use(i8)

0 commit comments

Comments
 (0)