[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / Transforms / WholeProgramDevirt / export-single-impl.ll
blobe03933ccb26db34b8afef865b5beeca6b766cdf4
1 ; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -S -o - %s | FileCheck %s
2 ; RUN: FileCheck --check-prefix=SUMMARY %s < %t
4 ; SUMMARY:      TypeIdMap:
5 ; SUMMARY-NEXT:   typeid3:
6 ; SUMMARY-NEXT:     TTRes:
7 ; SUMMARY-NEXT:       Kind:            Unsat
8 ; SUMMARY-NEXT:       SizeM1BitWidth:  0
9 ; SUMMARY-NEXT:       AlignLog2:       0
10 ; SUMMARY-NEXT:       SizeM1:          0
11 ; SUMMARY-NEXT:       BitMask:         0
12 ; SUMMARY-NEXT:       InlineBits:      0
13 ; SUMMARY-NEXT:     WPDRes:
14 ; SUMMARY-NEXT:       0:
15 ; SUMMARY-NEXT:         Kind:            SingleImpl
16 ; SUMMARY-NEXT:         SingleImplName:  'vf3$merged'
17 ; SUMMARY-NEXT:         ResByArg:
18 ; SUMMARY-NEXT:   typeid1:
19 ; SUMMARY-NEXT:     TTRes:
20 ; SUMMARY-NEXT:       Kind:            Unsat
21 ; SUMMARY-NEXT:       SizeM1BitWidth:  0
22 ; SUMMARY-NEXT:       AlignLog2:       0
23 ; SUMMARY-NEXT:       SizeM1:          0
24 ; SUMMARY-NEXT:       BitMask:         0
25 ; SUMMARY-NEXT:       InlineBits:      0
26 ; SUMMARY-NEXT:     WPDRes:
27 ; SUMMARY-NEXT:       0:
28 ; SUMMARY-NEXT:         Kind:            SingleImpl
29 ; SUMMARY-NEXT:         SingleImplName:  vf1
30 ; SUMMARY-NEXT:         ResByArg:
31 ; SUMMARY-NEXT:   typeid2:
32 ; SUMMARY-NEXT:     TTRes:
33 ; SUMMARY-NEXT:       Kind:            Unsat
34 ; SUMMARY-NEXT:       SizeM1BitWidth:  0
35 ; SUMMARY-NEXT:       AlignLog2:       0
36 ; SUMMARY-NEXT:       SizeM1:          0
37 ; SUMMARY-NEXT:       BitMask:         0
38 ; SUMMARY-NEXT:       InlineBits:      0
39 ; SUMMARY-NEXT:     WPDRes:
40 ; SUMMARY-NEXT:       0:
41 ; SUMMARY-NEXT:         Kind:            SingleImpl
42 ; SUMMARY-NEXT:         SingleImplName:  vf2
43 ; SUMMARY-NEXT:         ResByArg:
44 ; SUMMARY-NEXT:   typeid4:
45 ; SUMMARY-NEXT:     TTRes:
46 ; SUMMARY-NEXT:       Kind:            Unsat
47 ; SUMMARY-NEXT:       SizeM1BitWidth:  0
48 ; SUMMARY-NEXT:       AlignLog2:       0
49 ; SUMMARY-NEXT:       SizeM1:          0
50 ; SUMMARY-NEXT:       BitMask:         0
51 ; SUMMARY-NEXT:       InlineBits:      0
52 ; SUMMARY-NEXT:     WPDRes:
53 ; SUMMARY-NEXT:       0:
54 ; SUMMARY-NEXT:         Kind:            SingleImpl
55 ; SUMMARY-NEXT:         SingleImplName:  'vf4$merged'
56 ; SUMMARY-NEXT:         ResByArg:
57 ; SUMMARY-NEXT: WithGlobalValueDeadStripping: false
58 ; SUMMARY-NEXT: ...
60 ; CHECK: $"vf4$merged" = comdat largest
61 $vf4 = comdat largest
63 ; CHECK: @vt1 = constant void (i8*)* @vf1
64 @vt1 = constant void (i8*)* @vf1, !type !0
66 ; CHECK: @vt2 = constant void (i8*)* @vf2
67 @vt2 = constant void (i8*)* @vf2, !type !1
69 @vt3 = constant void (i8*)* @vf3, !type !2
71 ; CHECK: @vt4 = constant void (i8*)* @"vf4$merged", comdat($"vf4$merged")
72 @vt4 = constant void (i8*)* @vf4, comdat($vf4), !type !3
74 @vt5 = constant void (i8*)* @vf5, !type !4
76 ; CHECK: declare void @vf1(i8*)
77 declare void @vf1(i8*)
79 ; CHECK: define void @vf2(i8*)
80 define void @vf2(i8*) {
81   ret void
84 ; CHECK: define hidden void @"vf3$merged"(i8*) {
85 define internal void @vf3(i8*) {
86   ret void
89 ; CHECK: define hidden void @"vf4$merged"(i8*) comdat {
90 define internal void @vf4(i8*) comdat {
91   ret void
94 declare void @vf5(i8*)
96 !0 = !{i32 0, !"typeid1"}
97 !1 = !{i32 0, !"typeid2"}
98 !2 = !{i32 0, !"typeid3"}
99 !3 = !{i32 0, !"typeid4"}
100 !4 = !{i32 0, !5}
101 !5 = distinct !{}