@@ -275,37 +275,21 @@ if.false:
275
275
}
276
276
277
277
define void @f7_2 (i1 %c ) {
278
- ; NOT_CGSCC_NPM: Function Attrs: nounwind willreturn
279
- ; NOT_CGSCC_NPM-LABEL: define {{[^@]+}}@f7_2
280
- ; NOT_CGSCC_NPM-SAME: (i1 [[C:%.*]])
281
- ; NOT_CGSCC_NPM-NEXT: [[PTR:%.*]] = tail call noundef nonnull align 4 dereferenceable(4) i32* @unkown_ptr()
282
- ; NOT_CGSCC_NPM-NEXT: [[A:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(4) [[PTR]])
283
- ; NOT_CGSCC_NPM-NEXT: [[ARG_A_0:%.*]] = load i32, i32* [[PTR]], align 4
284
- ; NOT_CGSCC_NPM-NEXT: [[B:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(4) [[PTR]])
285
- ; NOT_CGSCC_NPM-NEXT: br i1 [[C]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]]
286
- ; NOT_CGSCC_NPM: if.true:
287
- ; NOT_CGSCC_NPM-NEXT: [[C:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
288
- ; NOT_CGSCC_NPM-NEXT: [[D:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
289
- ; NOT_CGSCC_NPM-NEXT: [[E:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
290
- ; NOT_CGSCC_NPM-NEXT: ret void
291
- ; NOT_CGSCC_NPM: if.false:
292
- ; NOT_CGSCC_NPM-NEXT: ret void
293
- ;
294
- ; IS__CGSCC_NPM: Function Attrs: nounwind willreturn
295
- ; IS__CGSCC_NPM-LABEL: define {{[^@]+}}@f7_2
296
- ; IS__CGSCC_NPM-SAME: (i1 [[C:%.*]])
297
- ; IS__CGSCC_NPM-NEXT: [[PTR:%.*]] = tail call nonnull align 4 dereferenceable(4) i32* @unkown_ptr()
298
- ; IS__CGSCC_NPM-NEXT: [[A:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(4) [[PTR]])
299
- ; IS__CGSCC_NPM-NEXT: [[ARG_A_0:%.*]] = load i32, i32* [[PTR]], align 4
300
- ; IS__CGSCC_NPM-NEXT: [[B:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(4) [[PTR]])
301
- ; IS__CGSCC_NPM-NEXT: br i1 [[C]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]]
302
- ; IS__CGSCC_NPM: if.true:
303
- ; IS__CGSCC_NPM-NEXT: [[C:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
304
- ; IS__CGSCC_NPM-NEXT: [[D:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
305
- ; IS__CGSCC_NPM-NEXT: [[E:%.*]] = tail call i32 @unkown_f(i32* noundef nonnull align 4 dereferenceable(8) [[PTR]])
306
- ; IS__CGSCC_NPM-NEXT: ret void
307
- ; IS__CGSCC_NPM: if.false:
308
- ; IS__CGSCC_NPM-NEXT: ret void
278
+ ; CHECK: Function Attrs: nounwind willreturn
279
+ ; CHECK-LABEL: define {{[^@]+}}@f7_2
280
+ ; CHECK-SAME: (i1 [[C:%.*]])
281
+ ; CHECK-NEXT: [[PTR:%.*]] = tail call nonnull align 4 dereferenceable(4) i32* @unkown_ptr()
282
+ ; CHECK-NEXT: [[A:%.*]] = tail call i32 @unkown_f(i32* nonnull align 4 dereferenceable(4) [[PTR]])
283
+ ; CHECK-NEXT: [[ARG_A_0:%.*]] = load i32, i32* [[PTR]], align 4
284
+ ; CHECK-NEXT: [[B:%.*]] = tail call i32 @unkown_f(i32* nonnull align 4 dereferenceable(4) [[PTR]])
285
+ ; CHECK-NEXT: br i1 [[C]], label [[IF_TRUE:%.*]], label [[IF_FALSE:%.*]]
286
+ ; CHECK: if.true:
287
+ ; CHECK-NEXT: [[C:%.*]] = tail call i32 @unkown_f(i32* nonnull align 4 dereferenceable(8) [[PTR]])
288
+ ; CHECK-NEXT: [[D:%.*]] = tail call i32 @unkown_f(i32* nonnull align 4 dereferenceable(8) [[PTR]])
289
+ ; CHECK-NEXT: [[E:%.*]] = tail call i32 @unkown_f(i32* nonnull align 4 dereferenceable(8) [[PTR]])
290
+ ; CHECK-NEXT: ret void
291
+ ; CHECK: if.false:
292
+ ; CHECK-NEXT: ret void
309
293
;
310
294
%ptr = tail call i32* @unkown_ptr ()
311
295
%A = tail call i32 @unkown_f (i32* %ptr )
@@ -1033,41 +1017,23 @@ define void @nonnull_assume_call(i8* %arg1, i8* %arg2, i8* %arg3, i8* %arg4) {
1033
1017
; ATTRIBUTOR-NEXT: call void @unknown()
1034
1018
; ATTRIBUTOR-NEXT: ret void
1035
1019
;
1036
- ; NOT_CGSCC_OPM-LABEL: define {{[^@]+}}@nonnull_assume_call
1037
- ; NOT_CGSCC_OPM-SAME: (i8* [[ARG1:%.*]], i8* [[ARG2:%.*]], i8* [[ARG3:%.*]], i8* [[ARG4:%.*]])
1038
- ; NOT_CGSCC_OPM-NEXT: call void @unknown()
1039
- ; NOT_CGSCC_OPM-NEXT: [[P:%.*]] = call noundef nonnull dereferenceable(101) i32* @unkown_ptr()
1040
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use32(i32* noundef nonnull dereferenceable(101) [[P]])
1041
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1042
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1043
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1044
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1045
- ; NOT_CGSCC_OPM-NEXT: call void @llvm.assume(i1 true) [ "nonnull"(i8* [[ARG3]]), "dereferenceable"(i8* [[ARG1]], i64 1), "dereferenceable"(i8* [[ARG1]], i64 2), "dereferenceable"(i32* [[P]], i64 101), "dereferenceable_or_null"(i8* [[ARG2]], i64 31), "dereferenceable_or_null"(i8* [[ARG4]], i64 42) ]
1046
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1047
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1048
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1049
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1050
- ; NOT_CGSCC_OPM-NEXT: call void @unknown_use32(i32* noundef nonnull dereferenceable(101) [[P]])
1051
- ; NOT_CGSCC_OPM-NEXT: call void @unknown()
1052
- ; NOT_CGSCC_OPM-NEXT: ret void
1053
- ;
1054
- ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@nonnull_assume_call
1055
- ; IS__CGSCC_OPM-SAME: (i8* [[ARG1:%.*]], i8* [[ARG2:%.*]], i8* [[ARG3:%.*]], i8* [[ARG4:%.*]])
1056
- ; IS__CGSCC_OPM-NEXT: call void @unknown()
1057
- ; IS__CGSCC_OPM-NEXT: [[P:%.*]] = call nonnull dereferenceable(101) i32* @unkown_ptr()
1058
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use32(i32* noundef nonnull dereferenceable(101) [[P]])
1059
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1060
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1061
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1062
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1063
- ; IS__CGSCC_OPM-NEXT: call void @llvm.assume(i1 true) [ "nonnull"(i8* [[ARG3]]), "dereferenceable"(i8* [[ARG1]], i64 1), "dereferenceable"(i8* [[ARG1]], i64 2), "dereferenceable"(i32* [[P]], i64 101), "dereferenceable_or_null"(i8* [[ARG2]], i64 31), "dereferenceable_or_null"(i8* [[ARG4]], i64 42) ]
1064
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1065
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1066
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1067
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1068
- ; IS__CGSCC_OPM-NEXT: call void @unknown_use32(i32* noundef nonnull dereferenceable(101) [[P]])
1069
- ; IS__CGSCC_OPM-NEXT: call void @unknown()
1070
- ; IS__CGSCC_OPM-NEXT: ret void
1020
+ ; CHECK-LABEL: define {{[^@]+}}@nonnull_assume_call
1021
+ ; CHECK-SAME: (i8* [[ARG1:%.*]], i8* [[ARG2:%.*]], i8* [[ARG3:%.*]], i8* [[ARG4:%.*]])
1022
+ ; CHECK-NEXT: call void @unknown()
1023
+ ; CHECK-NEXT: [[P:%.*]] = call nonnull dereferenceable(101) i32* @unkown_ptr()
1024
+ ; CHECK-NEXT: call void @unknown_use32(i32* nonnull dereferenceable(101) [[P]])
1025
+ ; CHECK-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1026
+ ; CHECK-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1027
+ ; CHECK-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1028
+ ; CHECK-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1029
+ ; CHECK-NEXT: call void @llvm.assume(i1 true) [ "nonnull"(i8* [[ARG3]]), "dereferenceable"(i8* [[ARG1]], i64 1), "dereferenceable"(i8* [[ARG1]], i64 2), "dereferenceable"(i32* [[P]], i64 101), "dereferenceable_or_null"(i8* [[ARG2]], i64 31), "dereferenceable_or_null"(i8* [[ARG4]], i64 42) ]
1030
+ ; CHECK-NEXT: call void @unknown_use8(i8* nonnull dereferenceable(2) [[ARG1]])
1031
+ ; CHECK-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(31) [[ARG2]])
1032
+ ; CHECK-NEXT: call void @unknown_use8(i8* nonnull [[ARG3]])
1033
+ ; CHECK-NEXT: call void @unknown_use8(i8* dereferenceable_or_null(42) [[ARG4]])
1034
+ ; CHECK-NEXT: call void @unknown_use32(i32* nonnull dereferenceable(101) [[P]])
1035
+ ; CHECK-NEXT: call void @unknown()
1036
+ ; CHECK-NEXT: ret void
1071
1037
;
1072
1038
call void @unknown ()
1073
1039
%p = call i32* @unkown_ptr ()
0 commit comments