11// RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks %s -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK,CHECK-O0
22// RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=pattern %s -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK-O0,PATTERN,PATTERN-O0
3- // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=pattern %s -O1 -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK-O1, PATTERN,PATTERN-O1
3+ // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=pattern %s -O1 -emit-llvm -o - | FileCheck %s -check-prefixes=PATTERN,PATTERN-O1
44// RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=zero %s -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK-O0,ZERO,ZERO-O0
5- // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=zero %s -O1 -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK-O1, ZERO,ZERO-O1
5+ // RUN: %clang_cc1 -std=c++14 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=zero %s -O1 -emit-llvm -o - | FileCheck %s -check-prefixes=ZERO,ZERO-O1
66// RUN: %clang_cc1 -std=c++14 -triple i386-unknown-unknown -fblocks -ftrivial-auto-var-init=pattern %s -emit-llvm -o - | FileCheck %s -check-prefixes=CHECK-O0,PATTERN,PATTERN-O0
77
88#pragma clang diagnostic ignored "-Winaccessible-base"
@@ -1303,9 +1303,10 @@ TEST_CUSTOM(semivolatile, semivolatile, { 0x44444444, 0x44444444 });
13031303// CHECK-O0: call void @llvm.memcpy
13041304// CHECK-NOT: !annotation
13051305// CHECK-O0: call void @{{.*}}used{{.*}}%custom)
1306- // CHECK-O1: store i32 1145324612, ptr %custom, align 4
1307- // CHECK-O1-NEXT: %[[I:[^ ]*]] = getelementptr inbounds i8, ptr %custom, i64 4
1308- // CHECK-O1-NEXT: store i32 1145324612, ptr %[[I]], align 4
1306+ // PATTERN-O1: store i32 1145324612, ptr %custom, align 4
1307+ // PATTERN-O1-NEXT: %[[I:[^ ]*]] = getelementptr inbounds i8, ptr %custom, i64 4
1308+ // PATTERN-O1-NEXT: store i32 1145324612, ptr %[[I]], align 4
1309+ // ZERO-O1: store i64 4919131752989213764, ptr %custom, align 8
13091310// CHECK-NOT: !annotation
13101311
13111312TEST_UNINIT (semivolatileinit, semivolatileinit);
@@ -1418,7 +1419,8 @@ TEST_CUSTOM(matching, matching, { .f = 0xf00f });
14181419// CHECK-O0: call void @llvm.memcpy
14191420// CHECK-NOT: !annotation
14201421// CHECK-O0: call void @{{.*}}used{{.*}}%custom)
1421- // CHECK-O1: store float 6.145500e+04, ptr {{.*}}, align 4
1422+ // PATTERN-O1: store float 6.145500e+04, ptr {{.*}}, align 4
1423+ // ZERO-O1: store i32 1198526208, ptr %custom, align 4
14221424// CHECK-NOT: !annotation
14231425
14241426TEST_UNINIT (matchingreverse, matchingreverse);
@@ -1445,7 +1447,8 @@ TEST_CUSTOM(matchingreverse, matchingreverse, { .i = 0xf00f });
14451447// CHECK-O0: call void @llvm.memcpy
14461448// CHECK-NOT: !annotation
14471449// CHECK-O0: call void @{{.*}}used{{.*}}%custom)
1448- // CHECK-O1: store i32 61455, ptr %custom, align 4
1450+ // PATTERN-O1: store i32 61455, ptr %custom, align 4
1451+ // ZERO-O1: store i32 61455, ptr %custom, align 4
14491452// CHECK-NOT: !annotation
14501453
14511454TEST_UNINIT (unmatched, unmatched);
@@ -1471,7 +1474,8 @@ TEST_CUSTOM(unmatched, unmatched, { .i = 0x3badbeef });
14711474// CHECK-O0: call void @llvm.memcpy
14721475// CHECK-NOT: !annotation
14731476// CHECK-O0: call void @{{.*}}used{{.*}}%custom)
1474- // CHECK-O1: store i32 1001242351, ptr {{.*}}, align 4
1477+ // PATTERN-O1: store i32 1001242351, ptr {{.*}}, align 4
1478+ // ZERO-O1: store i32 1001242351, ptr {{.*}}, align 4
14751479// CHECK-NOT: !annotation
14761480
14771481TEST_UNINIT (unmatchedreverse, unmatchedreverse);
@@ -1504,9 +1508,7 @@ TEST_CUSTOM(unmatchedreverse, unmatchedreverse, { .c = 42 });
15041508// PATTERN-O1-NEXT: store i8 -86, ptr %[[I]], align {{.*}}
15051509// PATTERN-O1-NEXT: %[[I:[^ ]*]] = getelementptr inbounds i8, ptr %custom, i64 3
15061510// PATTERN-O1-NEXT: store i8 -86, ptr %[[I]], align {{.*}}
1507- // ZERO-O1: store i8 42, ptr {{.*}}, align 4
1508- // ZERO-O1-NEXT: %[[I:[^ ]*]] = getelementptr inbounds i8, ptr %custom, i64 1
1509- // ZERO-O1-NEXT: call void @llvm.memset.{{.*}}({{.*}}, i8 0, i64 3, {{.*}})
1511+ // ZERO-O1: store i32 42, ptr {{.*}}, align 4
15101512
15111513TEST_UNINIT (unmatchedfp, unmatchedfp);
15121514// CHECK-LABEL: @test_unmatchedfp_uninit()
@@ -1531,7 +1533,8 @@ TEST_CUSTOM(unmatchedfp, unmatchedfp, { .d = 3.1415926535897932384626433 });
15311533// CHECK-O0: call void @llvm.memcpy
15321534// CHECK-NOT: !annotation
15331535// CHECK-O0: call void @{{.*}}used{{.*}}%custom)
1534- // CHECK-O1: store double 0x400921FB54442D18, ptr %custom, align 8
1536+ // PATTERN-O1: store double 0x400921FB54442D18, ptr %custom, align 8
1537+ // ZERO-O1: store i64 4614256656552045848, ptr %custom, align 8
15351538// CHECK-NOT: !annotation
15361539
15371540TEST_UNINIT (emptyenum, emptyenum);
0 commit comments