|
| 1 | +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 |
1 | 2 | ; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s
|
2 | 3 |
|
3 | 4 | declare void @bar(ptr)
|
4 | 5 | declare void @baz(ptr)
|
5 | 6 |
|
6 |
| -; CHECK-LABEL: @test_load_combine_metadata( |
7 | 7 | ; 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: |
12 | 8 | 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 | +; |
13 | 22 | br i1 %c, label %t, label %f
|
14 | 23 |
|
15 | 24 | t:
|
|
26 | 35 | ret void
|
27 | 36 | }
|
28 | 37 |
|
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 | +} |
30 | 60 |
|
31 | 61 | !0 = !{i64 8}
|
32 | 62 | !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