Skip to content

Commit 0d87a14

Browse files
authored
Merge pull request #29150 from compnerd/vwt-cleanups
test: fix the prespecialized metadata tests
2 parents e1a2f42 + 94c11ee commit 0d87a14

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)