Skip to content

Commit 94c11ee

Browse files
committed
test: fix the prespecialized metadata tests
This loosens the overly fitted patterns and makes them much more legible. Unfortunately, the parent VWT is referenced differently and has been dropped here to actually allow the test to pass on all targets.
1 parent e1a2f42 commit 94c11ee

22 files changed

+738
-64
lines changed

test/IRGen/prespecialized-metadata/struct-fileprivate-inmodule-1argument-1distinct_use.swift

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,23 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
8-
// CHECK: @"$s4main5Value[[UNIQUE_ID_1:[0-9A-Z_]+]]VySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5Value[[UNIQUE_ID_1:[0-9A-Z_]+]]VMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$s4main5Value[[UNIQUE_ID_1:[0-9A-Z_]+]]VySiGMf" = internal constant <{
8+
// CHECK-SAME: i8**,
9+
// CHECK-SAME: [[INT]],
10+
// CHECK-SAME: %swift.type_descriptor*,
11+
// CHECK-SAME: %swift.type*,
12+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
13+
// CHECK-SAME: i64
14+
// CHECK-SAME: }> <{
15+
// i8** @"$sB[[INT]]_WV",
16+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5Value33_BD97D79156BC586FAA2AE8FB32F3D812LLVySiGWV", i32 0, i32 0),
17+
// CHECK-SAME: [[INT]] 512,
18+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5Value[[UNIQUE_ID_1:[0-9A-Z_]+]]VMn" to %swift.type_descriptor*),
19+
// CHECK-SAME: %swift.type* @"$sSiN",
20+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
21+
// CHECK-SAME: i64 3
22+
// CHECK-SAME: }>, align [[ALIGNMENT]]
23+
924
fileprivate struct Value<First> {
1025
let first: First
1126
}

test/IRGen/prespecialized-metadata/struct-inmodule-0argument-within-class-1argument-1distinct_use.swift

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,23 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
8-
// CHECK: @"$s4main9NamespaceC5ValueVySi_GMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main9NamespaceC5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$s4main9NamespaceC5ValueVySi_GMf" = internal constant <{
8+
// CHECk-SAME: i8**,
9+
// CHECK-SAME: [[INT]],
10+
// CHECK-SAME: %swift.type_descriptor*,
11+
// CHECK-SAME: %swift.type*,
12+
// CHECK-SAME: i32{{(, \[4 x i8\])?}}, i64
13+
// CHECK-SAME: }> <{
14+
// i8** @"$sB[[INT]]_WV",
15+
// getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main9NamespaceC5ValueVySi_GWV", i32 0, i32 0),
16+
// CHECK-SAME: [[INT]] 512,
17+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main9NamespaceC5ValueVMn" to %swift.type_descriptor*),
18+
// CHECK-SAME: %swift.type* @"$sSiN",
19+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
20+
// CHECK-SAME: i64 3
21+
// CHECK-SAME: }>, align [[ALIGNMENT]]
22+
23+
924
final class Namespace<Arg> {
1025
struct Value {
1126
let first: Arg

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-1conformance-1distinct_use.swift

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,27 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sytN" = external global %swift.full_type
8-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
9-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i8**, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0), i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$sytN" = external{{( dllimport)?}} global %swift.full_type
8+
9+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
10+
// CHECK-SAME: i8**,
11+
// CHECK-SAME: [[INT]],
12+
// CHECK-SAME: %swift.type_descriptor*,
13+
// CHECK-SAME: %swift.type*,
14+
// CHECK-SAME: i8**,
15+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
16+
// CHECK-SAME: i64
17+
// CHECK-SAME: }> <{
18+
// i8** @"$sB[[INT]]_WV",
19+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
20+
// CHECK-SAME: [[INT]] 512,
21+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
22+
// CHECK-SAME: %swift.type* @"$sSiN",
23+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0),
24+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
25+
// CHECK-SAME: i64 3
26+
// CHECK-SAME: }>, align [[ALIGNMENT]]
27+
1028
protocol P {}
1129
extension Int : P {}
1230
struct Value<First : P> {

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-1distinct_use.swift

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,23 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
8-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
8+
// CHECK-SAME: i8**,
9+
// CHECK-SAME: [[INT]],
10+
// CHECK-SAME: %swift.type_descriptor*,
11+
// CHECK-SAME: %swift.type*,
12+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
13+
// CHECK-SAME: i64
14+
// CHECK-SAME: }> <{
15+
// i8** @"$sB[[INT]]_WV",
16+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
17+
// CHECK-SAME: [[INT]] 512,
18+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
19+
// CHECK-SAME: %swift.type* @"$sSiN",
20+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
21+
// CHECK-SAME: i64 3
22+
// CHECK-SAME: }>, align [[ALIGNMENT]]
23+
924
struct Value<First> {
1025
let first: First
1126
}

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-2conformance-1distinct_use.swift

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,29 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sytN" = external global %swift.full_type
8-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
9-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i8**, i8**, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0), i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1QAAWP", i32 0, i32 0), i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$sytN" = external{{( dllimport)?}} global %swift.full_type
8+
9+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
10+
// CHECK-SAME: i8**,
11+
// CHECK-SAME: [[INT]],
12+
// CHECK-SAME: %swift.type_descriptor*,
13+
// CHECK-SAME: %swift.type*,
14+
// CHECK-SAME: i8**,
15+
// CHECK-SAME: i8**,
16+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
17+
// CHECK-SAME: i64
18+
// CHECK-SAME: }> <{
19+
// i8** @"$sB[[INT]]_WV",
20+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
21+
// CHECK-SAME: [[INT]] 512,
22+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
23+
// CHECK-SAME: %swift.type* @"$sSiN",
24+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0),
25+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1QAAWP", i32 0, i32 0),
26+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
27+
// CHECK-SAME: i64 3
28+
// CHECK-SAME: }>, align [[ALIGNMENT]]
29+
1030
protocol P {}
1131
protocol Q {}
1232
extension Int : P {}

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-2distinct_use.swift

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,40 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sBi64_WV" = external global i8*, align [[ALIGNMENT]]
8-
// CHECK: @"$s4main5ValueVySdGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sBi64_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSdN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
9-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$s4main5ValueVySdGMf" = internal constant <{
8+
// CHECk-SAME: i8**,
9+
// CHECK-SAME: [[INT]],
10+
// CHECK-SAME: %swift.type_descriptor*,
11+
// CHECK-SAME: %swift.type*,
12+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
13+
// CHECk-SAME: i64
14+
// CHECK-SAME: }> <{
15+
// i8** @"$sBi64_WV",
16+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySdGWV", i32 0, i32 0),
17+
// CHECk-SAME: [[INT]] 512,
18+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
19+
// CHECK-SAME: %swift.type* @"$sSdN",
20+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
21+
// CHECK-SAME: i64 3
22+
// CHECK-SAME: }>, align [[ALIGNMENT]]
23+
24+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
25+
// CHECK-SAME: i8**,
26+
// CHECK-SAME: [[INT]],
27+
// CHECK-SAME: %swift.type_descriptor*,
28+
// CHECK-SAME: %swift.type*,
29+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
30+
// CHECK-SAME: i64
31+
// CHECK-SAME: }> <{
32+
// i8** @"$sB[[INT]]_WV",
33+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
34+
// CHECK-SAME: [[INT]] 512,
35+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
36+
// CHECK-SAME: %swift.type* @"$sSiN",
37+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
38+
// CHECK-SAME: i64 3
39+
// CHECK-SAME: }>, align [[ALIGNMENT]]
40+
1041
struct Value<First> {
1142
let first: First
1243
}

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-3conformance-1distinct_use.swift

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,31 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$sytN" = external global %swift.full_type
8-
// CHECK: @"$sB[[INT]]_WV" = external global i8*, align [[ALIGNMENT]]
9-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i8**, i8**, i8**, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0), i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1QAAWP", i32 0, i32 0), i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1RAAWP", i32 0, i32 0), i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
7+
// CHECK: @"$sytN" = external{{( dllimport)?}} global %swift.full_type
8+
9+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
10+
// CHECK-SAME: i8**,
11+
// CHECK-SAME: [[INT]],
12+
// CHECK-SAME: %swift.type_descriptor*,
13+
// CHECK-SAME: %swift.type*,
14+
// CHECK-SAME: i8**,
15+
// CHECK-SAME: i8**,
16+
// CHECK-SAME: i8**,
17+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
18+
// CHECK-SAME: i64
19+
// CHECK-SAME: }> <{
20+
// i8** @"$sB[[INT]]_WV",
21+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
22+
// CHECK-SAME: [[INT]] 512,
23+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
24+
// CHECK-SAME: %swift.type* @"$sSiN",
25+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1PAAWP", i32 0, i32 0),
26+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1QAAWP", i32 0, i32 0),
27+
// CHECK-SAME: i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @"$sSi4main1RAAWP", i32 0, i32 0),
28+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
29+
// CHECK-SAME: i64 3
30+
// CHECK-SAME: }>, align [[ALIGNMENT]]
31+
1032
protocol P {}
1133
protocol Q {}
1234
protocol R {}

test/IRGen/prespecialized-metadata/struct-inmodule-1argument-3distinct_use.swift

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,59 @@
44
// UNSUPPORTED: CPU=armv7 && OS=ios
55
// UNSUPPORTED: CPU=armv7s && OS=ios
66

7-
// CHECK: @"$s4main5ValueVySSGWV" = linkonce_odr hidden constant %swift.vwtable { i8* bitcast (%swift.opaque* ([{{[0-9]+}} x i8]*, [{{[0-9]+}} x i8]*, %swift.type*)* @"$s4main5ValueVySSGwCP" to i8*), i8* bitcast (void (%swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwxx" to i8*), i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwcp" to i8*), i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwca" to i8*), i8* bitcast (i8* (i8*, i8*, %swift.type*)* @__swift_memcpy{{[0-9]+}}_[[ALIGNMENT]] to i8*), i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwta" to i8*), i8* bitcast (i32 (%swift.opaque*, i32, %swift.type*)* @"$s4main5ValueVySSGwet" to i8*), i8* bitcast (void (%swift.opaque*, i32, i32, %swift.type*)* @"$s4main5ValueVySSGwst" to i8*), [[INT]] {{[0-9]+}}, [[INT]] {{[0-9]+}}, i32 {{[0-9]+}}, i32 {{[0-9]+}} }, align [[ALIGNMENT]]
7+
// CHECK: @"$s4main5ValueVySSGWV" = linkonce_odr hidden constant %swift.vwtable {
8+
// CHECK-SAME: i8* bitcast (%swift.opaque* ([{{[0-9]+}} x i8]*, [{{[0-9]+}} x i8]*, %swift.type*)* @"$s4main5ValueVySSGwCP" to i8*),
9+
// CHECK-SAME: i8* bitcast (void (%swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwxx" to i8*),
10+
// CHECK-SAME: i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwcp" to i8*),
11+
// CHECK-SAME: i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwca" to i8*),
12+
// CHECK-SAME: i8* bitcast (i8* (i8*, i8*, %swift.type*)* @__swift_memcpy{{[0-9]+}}_[[ALIGNMENT]] to i8*),
13+
// CHECK-SAME: i8* bitcast (%swift.opaque* (%swift.opaque*, %swift.opaque*, %swift.type*)* @"$s4main5ValueVySSGwta" to i8*),
14+
// CHECK-SAME: i8* bitcast (i32 (%swift.opaque*, i32, %swift.type*)* @"$s4main5ValueVySSGwet" to i8*),
15+
// CHECK-SAME: i8* bitcast (void (%swift.opaque*, i32, i32, %swift.type*)* @"$s4main5ValueVySSGwst" to i8*),
16+
// CHECK-SAME: [[INT]] {{[0-9]+}},
17+
// CHECK-SAME: [[INT]] {{[0-9]+}},
18+
// CHECK-SAME: i32 {{[0-9]+}},
19+
// CHECK-SAME: i32 {{[0-9]+}}
20+
// CHECK-SAME: },
21+
// NOTE: ignore COMDAT on PE/COFF targets
22+
// CHECK-SAME: align [[ALIGNMENT]]
23+
824
// CHECK: @"$s4main5ValueVySSGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySSGWV", i32 0, i32 0), [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSSN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
9-
// CHECK: @"$sBi64_WV" = external global i8*, align [[ALIGNMENT]]
10-
// CHECK: @"$s4main5ValueVySdGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sBi64_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSdN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
11-
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{ i8**, [[INT]], %swift.type_descriptor*, %swift.type*, i32{{(, \[4 x i8\])?}}, i64 }> <{ i8** @"$sB[[INT]]_WV", [[INT]] 512, %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*), %swift.type* @"$sSiN", i32 0{{(, \[4 x i8\] zeroinitializer)?}}, i64 3 }>, align [[ALIGNMENT]]
25+
26+
// CHECK: @"$s4main5ValueVySdGMf" = internal constant <{
27+
// CHECK-SAME: i8**,
28+
// CHECK-SAME: [[INT]],
29+
// CHECK-SAME: %swift.type_descriptor*,
30+
// CHECK-SAME: %swift.type*,
31+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
32+
// CHECK-SAME: i64
33+
// CHECK-SAME: }> <{
34+
// i8** @"$sBi64_WV",
35+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySdGWV", i32 0, i32 0),
36+
// CHECK-SAME: [[INT]] 512,
37+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
38+
// CHECK-SAME: %swift.type* @"$sSdN",
39+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
40+
// CHECK-SAME: i64 3
41+
// CHECK-SAME: }>, align [[ALIGNMENT]]
42+
43+
// CHECK: @"$s4main5ValueVySiGMf" = internal constant <{
44+
// CHECK-SAME: i8**,
45+
// CHECK-SAME: [[INT]],
46+
// CHECK-SAME: %swift.type_descriptor*,
47+
// CHECK-SAME: %swift.type*,
48+
// CHECK-SAME: i32{{(, \[4 x i8\])?}},
49+
// CHECK-SAME: i64
50+
// CHECK-SAME: }> <{
51+
// i8** @"$sB[[INT]]_WV",
52+
// i8** getelementptr inbounds (%swift.vwtable, %swift.vwtable* @"$s4main5ValueVySiGWV", i32 0, i32 0),
53+
// CHECK-SAME: [[INT]] 512,
54+
// CHECK-SAME: %swift.type_descriptor* bitcast (<{ i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8 }>* @"$s4main5ValueVMn" to %swift.type_descriptor*),
55+
// CHECK-SAME: %swift.type* @"$sSiN",
56+
// CHECK-SAME: i32 0{{(, \[4 x i8\] zeroinitializer)?}},
57+
// CHECK-SAME: i64 3
58+
// CHECK-SAME: }>, align [[ALIGNMENT]]
59+
1260
struct Value<First> {
1361
let first: First
1462
}

0 commit comments

Comments
 (0)