Skip to content

Commit 40c7542

Browse files
committed
[SimplifyCFG] Add test for updating llvm.access.group when hoisting.
Add extra test coverage for preserving llvm.access.group metadata when hoisting.
1 parent e723b10 commit 40c7542

File tree

1 file changed

+45
-6
lines changed

1 file changed

+45
-6
lines changed

llvm/test/Transforms/SimplifyCFG/preserve-load-metadata.ll

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
12
; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
23

34
declare void @bar(ptr)
45
declare void @baz(ptr)
56

6-
; CHECK-LABEL: @test_load_combine_metadata(
77
; Check that align metadata is combined
8-
; CHECK: load ptr, ptr %p
9-
; CHECK-SAME: !align ![[ALIGN:[0-9]+]]
10-
; CHECK: t:
11-
; CHECK: f:
128
define void @test_load_combine_metadata(i1 %c, ptr %p) {
9+
; CHECK-LABEL: define void @test_load_combine_metadata(
10+
; CHECK-SAME: i1 [[C:%.*]], ptr [[P:%.*]]) {
11+
; CHECK-NEXT: [[V1:%.*]] = load ptr, ptr [[P]], align 8, !align [[META0:![0-9]+]]
12+
; CHECK-NEXT: br i1 [[C]], label %[[T:.*]], label %[[F:.*]]
13+
; CHECK: [[T]]:
14+
; CHECK-NEXT: call void @bar(ptr [[V1]])
15+
; CHECK-NEXT: br label %[[CONT:.*]]
16+
; CHECK: [[F]]:
17+
; CHECK-NEXT: call void @baz(ptr [[V1]])
18+
; CHECK-NEXT: br label %[[CONT]]
19+
; CHECK: [[CONT]]:
20+
; CHECK-NEXT: ret void
21+
;
1322
br i1 %c, label %t, label %f
1423

1524
t:
@@ -26,7 +35,37 @@ cont:
2635
ret void
2736
}
2837

29-
; CHECK: ![[ALIGN]] = !{i64 8}
38+
define i64 @test_intersect_access_grou_metadata(i1 %c, ptr %p) {
39+
; CHECK-LABEL: define i64 @test_intersect_access_grou_metadata(
40+
; CHECK-SAME: i1 [[C:%.*]], ptr [[P:%.*]]) {
41+
; CHECK-NEXT: [[ENTRY:.*:]]
42+
; CHECK-NEXT: [[L_1:%.*]] = load i64, ptr [[P]], align 8, !llvm.access.group [[ACC_GRP1:![0-9]+]]
43+
; CHECK-NEXT: ret i64 [[L_1]]
44+
;
45+
entry:
46+
br i1 %c, label %then, label %else
47+
48+
then:
49+
%l.1 = load i64, ptr %p, align 8, !llvm.access.group !2
50+
br label %exit
51+
52+
else:
53+
%l.2 = load i64, ptr %p, align 8, !llvm.access.group !5
54+
br label %exit
55+
56+
exit:
57+
%res = phi i64 [ %l.1, %then ], [ %l.2, %else ]
58+
ret i64 %res
59+
}
3060

3161
!0 = !{i64 8}
3262
!1 = !{i64 16}
63+
!2 = !{!3, !4}
64+
!3 = distinct !{}
65+
!4 = distinct !{}
66+
!5 = !{!3, !6}
67+
!6 = distinct !{}
68+
;.
69+
; CHECK: [[META0]] = !{i64 8}
70+
; CHECK: [[ACC_GRP1]] = distinct !{}
71+
;.

0 commit comments

Comments
 (0)