Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / Verifier / alias-scope-metadata.ll
blobe1672346a183f197a49f38fb7d4fb06f87719a8c
1 ; RUN: not llvm-as %s -o /dev/null 2>&1 | FileCheck %s
3 define void @test(ptr %p) {
4   load i8, ptr %p, !noalias !0
5   load i8, ptr %p, !noalias !1
6   load i8, ptr %p, !noalias !3
7   load i8, ptr %p, !noalias !5
8   load i8, ptr %p, !noalias !7
9   load i8, ptr %p, !noalias !9
10   load i8, ptr %p, !noalias !11
11   load i8, ptr %p, !noalias !14
12   load i8, ptr %p, !alias.scope !17
13   call void @llvm.experimental.noalias.scope.decl(metadata !20)
14   ret void
17 declare void @llvm.experimental.noalias.scope.decl(metadata)
19 ; CHECK: scope list must consist of MDNodes
20 !0 = !{!"str"}
22 ; CHECK: scope must have two or three operands
23 !1 = !{!2}
24 !2 = !{!2}
26 ; CHECK: scope must have two or three operands
27 !3 = !{!4}
28 !4 = !{!4, !5, !6, !7}
30 ; CHECK: first scope operand must be self-referential or string
31 !5 = !{!6}
32 !6 = !{!7, !8}
34 ; CHECK: third scope operand must be string (if used)
35 !7 = !{!8}
36 !8 = !{!8, !9, !10}
38 ; CHECK: second scope operand must be MDNode
39 !9 = !{!10}
40 !10 = !{!10, !"str"}
42 ; CHECK: domain must have one or two operands
43 !11 = !{!12}
44 !12 = !{!12, !13}
45 !13 = !{}
47 ; CHECK: domain must have one or two operands
48 !14 = !{!15}
49 !15 = !{!15, !16}
50 !16 = !{!17, !18, !19}
52 ; CHECK: first domain operand must be self-referential or string
53 !17 = !{!18}
54 !18 = !{!18, !19}
55 !19 = !{!20}
57 ; CHECK: second domain operand must be string (if used)
58 !20 = !{!21}
59 !21 = !{!21, !22}
60 !22 = !{!22, !23}
61 !23 = !{}