@@ -2425,33 +2425,59 @@ indirectgoto: ; preds = %lab0, %entry
24252425@e = global %struct.a* null
24262426
24272427define i32 @main () {
2428- ; CHECK-LABEL: define {{[^@]+}}@main() {
2429- ; CHECK-NEXT: entry:
2430- ; CHECK-NEXT: [[F:%.*]] = alloca i32, align 4
2431- ; CHECK-NEXT: br label [[FOR_COND_0:%.*]]
2432- ; CHECK: for.cond.0:
2433- ; CHECK-NEXT: [[G_0:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY_0:%.*]] ]
2434- ; CHECK-NEXT: [[CMP_0:%.*]] = icmp ult i32 [[G_0]], 100
2435- ; CHECK-NEXT: br i1 [[CMP_0]], label [[FOR_BODY_0]], label [[FOR_END_0:%.*]]
2436- ; CHECK: for.body.0:
2437- ; CHECK-NEXT: [[INC]] = add nuw nsw i32 [[G_0]], 1
2438- ; CHECK-NEXT: br label [[FOR_COND_0]]
2439- ; CHECK: for.end.0:
2440- ; CHECK-NEXT: [[CALL:%.*]] = call i8* @malloc(i64 noundef 8)
2441- ; CHECK-NEXT: store i8* [[CALL]], i8** bitcast (%struct.a** @e to i8**), align 8
2442- ; CHECK-NEXT: [[B:%.*]] = bitcast i8* [[CALL]] to %struct.a**
2443- ; CHECK-NEXT: store %struct.a* null, %struct.a** [[B]], align 8
2444- ; CHECK-NEXT: br label [[FOR_COND_1:%.*]]
2445- ; CHECK: for.cond.1:
2446- ; CHECK-NEXT: [[G_1:%.*]] = phi i32 [ 0, [[FOR_END_0]] ], [ [[INC6:%.*]], [[FOR_BODY_1:%.*]] ]
2447- ; CHECK-NEXT: [[CMP_1:%.*]] = icmp ult i32 [[G_1]], 100
2448- ; CHECK-NEXT: br i1 [[CMP_1]], label [[FOR_BODY_1]], label [[FOR_END_1:%.*]]
2449- ; CHECK: for.body.1:
2450- ; CHECK-NEXT: [[CALL4:%.*]] = call i32 (i32*, ...) bitcast (i32 (i32)* @h to i32 (i32*, ...)*)(i32* nonnull [[F]])
2451- ; CHECK-NEXT: [[INC6]] = add nuw nsw i32 [[G_1]], 1
2452- ; CHECK-NEXT: br label [[FOR_COND_1]]
2453- ; CHECK: for.end.1:
2454- ; CHECK-NEXT: ret i32 0
2428+ ; NOT_CGSCC_NPM-LABEL: define {{[^@]+}}@main() {
2429+ ; NOT_CGSCC_NPM-NEXT: entry:
2430+ ; NOT_CGSCC_NPM-NEXT: [[F:%.*]] = alloca i32, align 4
2431+ ; NOT_CGSCC_NPM-NEXT: br label [[FOR_COND_0:%.*]]
2432+ ; NOT_CGSCC_NPM: for.cond.0:
2433+ ; NOT_CGSCC_NPM-NEXT: [[G_0:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY_0:%.*]] ]
2434+ ; NOT_CGSCC_NPM-NEXT: [[CMP_0:%.*]] = icmp ult i32 [[G_0]], 100
2435+ ; NOT_CGSCC_NPM-NEXT: br i1 [[CMP_0]], label [[FOR_BODY_0]], label [[FOR_END_0:%.*]]
2436+ ; NOT_CGSCC_NPM: for.body.0:
2437+ ; NOT_CGSCC_NPM-NEXT: [[INC]] = add nuw nsw i32 [[G_0]], 1
2438+ ; NOT_CGSCC_NPM-NEXT: br label [[FOR_COND_0]]
2439+ ; NOT_CGSCC_NPM: for.end.0:
2440+ ; NOT_CGSCC_NPM-NEXT: [[CALL:%.*]] = call i8* @malloc(i64 noundef 8)
2441+ ; NOT_CGSCC_NPM-NEXT: store i8* [[CALL]], i8** bitcast (%struct.a** @e to i8**), align 8
2442+ ; NOT_CGSCC_NPM-NEXT: [[B:%.*]] = bitcast i8* [[CALL]] to %struct.a**
2443+ ; NOT_CGSCC_NPM-NEXT: store %struct.a* null, %struct.a** [[B]], align 8
2444+ ; NOT_CGSCC_NPM-NEXT: br label [[FOR_COND_1:%.*]]
2445+ ; NOT_CGSCC_NPM: for.cond.1:
2446+ ; NOT_CGSCC_NPM-NEXT: [[G_1:%.*]] = phi i32 [ 0, [[FOR_END_0]] ], [ [[INC6:%.*]], [[FOR_BODY_1:%.*]] ]
2447+ ; NOT_CGSCC_NPM-NEXT: [[CMP_1:%.*]] = icmp ult i32 [[G_1]], 100
2448+ ; NOT_CGSCC_NPM-NEXT: br i1 [[CMP_1]], label [[FOR_BODY_1]], label [[FOR_END_1:%.*]]
2449+ ; NOT_CGSCC_NPM: for.body.1:
2450+ ; NOT_CGSCC_NPM-NEXT: [[CALL4:%.*]] = call i32 (i32*, ...) bitcast (i32 (i32)* @h to i32 (i32*, ...)*)(i32* nonnull [[F]])
2451+ ; NOT_CGSCC_NPM-NEXT: [[INC6]] = add nuw nsw i32 [[G_1]], 1
2452+ ; NOT_CGSCC_NPM-NEXT: br label [[FOR_COND_1]]
2453+ ; NOT_CGSCC_NPM: for.end.1:
2454+ ; NOT_CGSCC_NPM-NEXT: ret i32 0
2455+ ;
2456+ ; IS__CGSCC____-LABEL: define {{[^@]+}}@main() {
2457+ ; IS__CGSCC____-NEXT: entry:
2458+ ; IS__CGSCC____-NEXT: br label [[FOR_COND_0:%.*]]
2459+ ; IS__CGSCC____: for.cond.0:
2460+ ; IS__CGSCC____-NEXT: [[G_0:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY_0:%.*]] ]
2461+ ; IS__CGSCC____-NEXT: [[CMP_0:%.*]] = icmp ult i32 [[G_0]], 100
2462+ ; IS__CGSCC____-NEXT: br i1 [[CMP_0]], label [[FOR_BODY_0]], label [[FOR_END_0:%.*]]
2463+ ; IS__CGSCC____: for.body.0:
2464+ ; IS__CGSCC____-NEXT: [[INC]] = add nuw nsw i32 [[G_0]], 1
2465+ ; IS__CGSCC____-NEXT: br label [[FOR_COND_0]]
2466+ ; IS__CGSCC____: for.end.0:
2467+ ; IS__CGSCC____-NEXT: [[CALL:%.*]] = call i8* @malloc(i64 noundef 8)
2468+ ; IS__CGSCC____-NEXT: store i8* [[CALL]], i8** bitcast (%struct.a** @e to i8**), align 8
2469+ ; IS__CGSCC____-NEXT: [[B:%.*]] = bitcast i8* [[CALL]] to %struct.a**
2470+ ; IS__CGSCC____-NEXT: store %struct.a* null, %struct.a** [[B]], align 8
2471+ ; IS__CGSCC____-NEXT: br label [[FOR_COND_1:%.*]]
2472+ ; IS__CGSCC____: for.cond.1:
2473+ ; IS__CGSCC____-NEXT: [[G_1:%.*]] = phi i32 [ 0, [[FOR_END_0]] ], [ [[INC6:%.*]], [[FOR_BODY_1:%.*]] ]
2474+ ; IS__CGSCC____-NEXT: [[CMP_1:%.*]] = icmp ult i32 [[G_1]], 100
2475+ ; IS__CGSCC____-NEXT: br i1 [[CMP_1]], label [[FOR_BODY_1]], label [[FOR_END_1:%.*]]
2476+ ; IS__CGSCC____: for.body.1:
2477+ ; IS__CGSCC____-NEXT: [[INC6]] = add nuw nsw i32 [[G_1]], 1
2478+ ; IS__CGSCC____-NEXT: br label [[FOR_COND_1]]
2479+ ; IS__CGSCC____: for.end.1:
2480+ ; IS__CGSCC____-NEXT: ret i32 0
24552481;
24562482entry:
24572483 %f = alloca i32
0 commit comments