// RUN: %target-swift-frontend -emit-ir %s -g -o - \ // RUN: -parse-as-library -module-name a -target %target-swift-5.9-abi-triple | %FileCheck %s public func f1(ts: repeat each T) { // CHECK: define {{.*}} @"$s1a2f12tsyxxQp_tRvzlF"(ptr {{.*}}, i{{32|64}} [[COUNT1_1:.*]], ptr {{.*}}) // CHECK-DAG: store i{{32|64}} [[COUNT1_1]], ptr %[[COUNT1_1_A:.*]], align // CHECK-DAG: #dbg_declare({{.*}}[[COUNT1_1_A]], ![[COUNT1_1_VAR:[0-9]+]], !DIExpression() // CHECK-LABEL: ret void } public func f2(us: repeat each U, vs: repeat each V) { // CHECK: define {{.*}} @"$s1a2f22us2vsyxxQp_q_q_QptRvzRv_r0_lF"(ptr {{.*}}, ptr {{.*}}, i{{32|64}} [[COUNT2_1:.*]], i{{32|64}} [[COUNT2_2:.*]], ptr {{.*}}, ptr {{.*}}) // CHECK-DAG: store i{{32|64}} [[COUNT2_1]], ptr %[[COUNT2_1_A:.*]], align // CHECK-DAG: store i{{32|64}} [[COUNT2_2]], ptr %[[COUNT2_2_A:.*]], align // CHECK-DAG: #dbg_declare({{.*}}[[COUNT2_1_A]], ![[COUNT2_1_VAR:[0-9]+]], !DIExpression() // CHECK-DAG: #dbg_declare({{.*}}[[COUNT2_2_A]], ![[COUNT2_2_VAR:[0-9]+]], !DIExpression() // CHECK-LABEL: ret void } public func f3(ts: repeat each T, more_ts: repeat each T) { // CHECK: define {{.*}} @"$s1a2f32ts05more_B0yxxQp_xxQptRvzlF"(ptr {{.*}}, ptr {{.*}}, i{{32|64}} [[COUNT3_1:.*]], ptr {{.*}}) // CHECK-DAG: store i{{32|64}} [[COUNT3_1]], ptr %[[COUNT3_1_A:.*]], align // CHECK-DAG: #dbg_declare({{.*}}[[COUNT3_1_A]], ![[COUNT3_1_VAR:[0-9]+]], !DIExpression() // CHECK-LABEL: ret void } public func f4(us: repeat (each U, each V)) { // CHECK: define {{.*}} @"$s1a2f42usyx_q_txQp_tRvzRv_q_Rhzr0_lF"(ptr {{.*}}, i{{32|64}} [[COUNT4_1:.*]], ptr {{.*}}, ptr {{.*}}) // CHECK-DAG: store i{{32|64}} [[COUNT4_1]], ptr %[[COUNT4_1_A:.*]], align // CHECK-DAG: #dbg_declare({{.*}}[[COUNT4_1_A]], ![[COUNT4_1_VAR:[0-9]+]], !DIExpression() // CHECK-LABEL: ret void } public struct S { let vals: (repeat each T) public func f5() { // CHECK: define {{.*}} @"$s1a1SV2f5yyF"(ptr {{.*}}, ptr {{.*}} %0) } } public func f6(s: S) { // CHECK: define {{.*}} @"$s1a2f61syAA1SVyxxQp_QPG_tRvzlF"(ptr {{.*}}, i{{32|64}} [[COUNT6_1:.*]], ptr {{.*}}) // CHECK-DAG: store i{{32|64}} [[COUNT6_1]], ptr %[[COUNT6_1_A:.*]], align // CHECK-DAG: #dbg_declare({{.*}}[[COUNT6_1_A]], ![[COUNT6_1_VAR:[0-9]+]], !DIExpression() } // CHECK-LABEL: !DICompileUnit // CHECK-DAG: [[COUNT1_1_VAR]] = !DILocalVariable(name: "$pack_count_0",{{.*}} flags: DIFlagArtificial) // CHECK-DAG: [[COUNT2_1_VAR]] = !DILocalVariable(name: "$pack_count_0",{{.*}} flags: DIFlagArtificial) // CHECK-DAG: [[COUNT2_2_VAR]] = !DILocalVariable(name: "$pack_count_1",{{.*}} flags: DIFlagArtificial) // CHECK-DAG: [[COUNT3_1_VAR]] = !DILocalVariable(name: "$pack_count_0",{{.*}} flags: DIFlagArtificial) // CHECK-DAG: [[COUNT4_1_VAR]] = !DILocalVariable(name: "$pack_count_0",{{.*}} flags: DIFlagArtificial) // CHECK-DAG: [[COUNT6_1_VAR]] = !DILocalVariable(name: "$pack_count_0",{{.*}} flags: DIFlagArtificial)