Skip to content

Commit 3f199cb

Browse files
committed
[SROA] Add test for #64081 (NFC)
1 parent 0d903b6 commit 3f199cb

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

llvm/test/Transforms/SROA/pr64081.ll

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
2+
; RUN: opt -S -passes=sroa < %s | FileCheck %s
3+
4+
%B = type { i1, i3 }
5+
6+
; FIXME: This is a miscompile.
7+
define void @test(i7 %x) {
8+
; CHECK-LABEL: define void @test(
9+
; CHECK-SAME: i7 [[X:%.*]]) {
10+
; CHECK-NEXT: bb:
11+
; CHECK-NEXT: [[RES:%.*]] = alloca [2 x i8], align 1
12+
; CHECK-NEXT: [[TMP_SROA_1:%.*]] = alloca i3, align 1
13+
; CHECK-NEXT: store i7 [[X]], ptr [[TMP_SROA_1]], align 1
14+
; CHECK-NEXT: store i1 undef, ptr [[RES]], align 1
15+
; CHECK-NEXT: [[TMP_SROA_1_0_RES_SROA_IDX:%.*]] = getelementptr inbounds i8, ptr [[RES]], i64 1
16+
; CHECK-NEXT: [[TMP_SROA_1_0_TMP_SROA_1_0_COPYLOAD:%.*]] = load i3, ptr [[TMP_SROA_1]], align 1
17+
; CHECK-NEXT: store i3 [[TMP_SROA_1_0_TMP_SROA_1_0_COPYLOAD]], ptr [[TMP_SROA_1_0_RES_SROA_IDX]], align 1
18+
; CHECK-NEXT: [[TMP0:%.*]] = call i8 @use(ptr [[RES]])
19+
; CHECK-NEXT: ret void
20+
;
21+
bb:
22+
%res = alloca [2 x i8]
23+
%tmp = alloca { i1, i3 }
24+
%tmp.1 = getelementptr i8, ptr %tmp, i64 1
25+
store i7 %x, ptr %tmp.1
26+
call void @llvm.memcpy.p0.p0.i64(ptr %res, ptr %tmp, i64 2, i1 false)
27+
call i8 @use(ptr %res)
28+
ret void
29+
}
30+
31+
declare void @use(ptr)
32+
33+
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg)

0 commit comments

Comments
 (0)