diff options
Diffstat (limited to 'clang/test/CodeGenObjCXX')
19 files changed, 60 insertions, 60 deletions
diff --git a/clang/test/CodeGenObjCXX/arc-cxx11-member-init.mm b/clang/test/CodeGenObjCXX/arc-cxx11-member-init.mm index 0169612462c..89683ba3a89 100644 --- a/clang/test/CodeGenObjCXX/arc-cxx11-member-init.mm +++ b/clang/test/CodeGenObjCXX/arc-cxx11-member-init.mm @@ -23,8 +23,8 @@ class XClipboardDataSet @end // CHECK: [[mClipData:%.*]] = getelementptr inbounds %class.XClipboardDataSet, %class.XClipboardDataSet* -// CHECK: [[ZERO:%.*]] = load %struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" -// CHECK: [[ONE:%.*]] = load i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK: [[ZERO:%.*]] = load %struct._class_t*, %struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" +// CHECK: [[ONE:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES_ // CHECK: [[TWO:%.*]] = bitcast %struct._class_t* [[ZERO]] to i8* // CHECK: [[CALL:%.*]] = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* [[TWO]], i8* [[ONE]]) // CHECK: [[THREE:%.*]] = bitcast i8* [[CALL]] to [[T:%.*]]* diff --git a/clang/test/CodeGenObjCXX/arc-exceptions.mm b/clang/test/CodeGenObjCXX/arc-exceptions.mm index 4b1ab4b5791..cc2206d1a9e 100644 --- a/clang/test/CodeGenObjCXX/arc-exceptions.mm +++ b/clang/test/CodeGenObjCXX/arc-exceptions.mm @@ -94,7 +94,7 @@ namespace test4 { throw 0; } // CHECK-LABEL: define void @_ZN5test41AC2Ev( - // CHECK: [[THIS:%.*]] = load [[A:%.*]]** {{%.*}} + // CHECK: [[THIS:%.*]] = load [[A:%.*]]*, [[A:%.*]]** {{%.*}} // Construct single. // CHECK-NEXT: [[SINGLE:%.*]] = getelementptr inbounds [[A]], [[A]]* [[THIS]], i32 0, i32 0 // CHECK-NEXT: store i8* null, i8** [[SINGLE]], align 8 diff --git a/clang/test/CodeGenObjCXX/arc-move.mm b/clang/test/CodeGenObjCXX/arc-move.mm index d7b9f55d5fd..dc670492f1d 100644 --- a/clang/test/CodeGenObjCXX/arc-move.mm +++ b/clang/test/CodeGenObjCXX/arc-move.mm @@ -2,9 +2,9 @@ // define void @_Z11simple_moveRU8__strongP11objc_objectS2_ void simple_move(__strong id &x, __strong id &y) { - // CHECK: = load i8** + // CHECK: = load i8*, i8** // CHECK: store i8* null - // CHECK: = load i8** + // CHECK: = load i8*, i8** // CHECK: store i8* // CHECK-NEXT: call void @objc_release x = static_cast<__strong id&&>(y); @@ -34,10 +34,10 @@ typename remove_reference<T>::type&& move(T &&x) { // CHECK-LABEL: define void @_Z12library_moveRU8__strongP11objc_objectS2_ void library_move(__strong id &x, __strong id &y) { // CHECK: call dereferenceable({{[0-9]+}}) i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_ - // CHECK: load i8** + // CHECK: load i8*, i8** // CHECK: store i8* null, i8** - // CHECK: load i8*** - // CHECK-NEXT: load i8** + // CHECK: load i8**, i8*** + // CHECK-NEXT: load i8*, i8** // CHECK-NEXT: store i8* // CHECK-NEXT: call void @objc_release // CHECK-NEXT: ret void @@ -48,7 +48,7 @@ void library_move(__strong id &x, __strong id &y) { void library_move(__strong id &y) { // CHECK: [[Y:%[a-zA-Z0-9]+]] = call dereferenceable({{[0-9]+}}) i8** @_Z4moveIRU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_ // Load the object - // CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8** [[Y]] + // CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8*, i8** [[Y]] // Null out y // CHECK-NEXT: store i8* null, i8** [[Y]] // Initialize x with the object @@ -57,7 +57,7 @@ void library_move(__strong id &y) { // CHECK-NEXT: store i32 17 int i = 17; - // CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8** [[X]] + // CHECK-NEXT: [[OBJ:%[a-zA-Z0-9]+]] = load i8*, i8** [[X]] // CHECK-NEXT: call void @objc_release(i8* [[OBJ]]) // CHECK-NEXT: ret void } @@ -66,10 +66,10 @@ void library_move(__strong id &y) { void const_move(const __strong id &x) { // CHECK: [[Y:%.*]] = alloca i8*, // CHECK: [[X:%.*]] = call dereferenceable({{[0-9]+}}) i8** @_Z4moveIRKU8__strongP11objc_objectEON16remove_referenceIT_E4typeEOS5_( - // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]] + // CHECK-NEXT: [[T0:%.*]] = load i8*, i8** [[X]] // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]]) // CHECK-NEXT: store i8* [[T1]], i8** [[Y]] - // CHECK-NEXT: [[T0:%.*]] = load i8** [[Y]] + // CHECK-NEXT: [[T0:%.*]] = load i8*, i8** [[Y]] // CHECK-NEXT: call void @objc_release(i8* [[T0]]) id y = move(x); } diff --git a/clang/test/CodeGenObjCXX/arc-new-delete.mm b/clang/test/CodeGenObjCXX/arc-new-delete.mm index abae76bbf90..9a61f183c69 100644 --- a/clang/test/CodeGenObjCXX/arc-new-delete.mm +++ b/clang/test/CodeGenObjCXX/arc-new-delete.mm @@ -57,7 +57,7 @@ void test_array_new() { // CHECK-LABEL: define void @_Z11test_deletePU8__strongP11objc_objectPU6__weakS0_ void test_delete(__strong id *sptr, __weak id *wptr) { // CHECK: br i1 - // CHECK: load i8** + // CHECK: load i8*, i8** // CHECK-NEXT: call void @objc_release // CHECK: call void @_ZdlPv delete sptr; @@ -72,7 +72,7 @@ void test_delete(__strong id *sptr, __weak id *wptr) { // CHECK-LABEL: define void @_Z17test_array_deletePU8__strongP11objc_objectPU6__weakS0_ void test_array_delete(__strong id *sptr, __weak id *wptr) { // CHECK: icmp eq i8** [[BEGIN:%.*]], null - // CHECK: [[LEN:%.*]] = load i64* {{%.*}} + // CHECK: [[LEN:%.*]] = load i64, i64* {{%.*}} // CHECK: [[END:%.*]] = getelementptr inbounds i8*, i8** [[BEGIN]], i64 [[LEN]] // CHECK-NEXT: icmp eq i8** [[BEGIN]], [[END]] // CHECK: [[PAST:%.*]] = phi i8** [ [[END]], {{%.*}} ], [ [[CUR:%.*]], @@ -83,7 +83,7 @@ void test_array_delete(__strong id *sptr, __weak id *wptr) { delete [] sptr; // CHECK: icmp eq i8** [[BEGIN:%.*]], null - // CHECK: [[LEN:%.*]] = load i64* {{%.*}} + // CHECK: [[LEN:%.*]] = load i64, i64* {{%.*}} // CHECK: [[END:%.*]] = getelementptr inbounds i8*, i8** [[BEGIN]], i64 [[LEN]] // CHECK-NEXT: icmp eq i8** [[BEGIN]], [[END]] // CHECK: [[PAST:%.*]] = phi i8** [ [[END]], {{%.*}} ], [ [[CUR:%.*]], diff --git a/clang/test/CodeGenObjCXX/arc-pseudo-destructors.mm b/clang/test/CodeGenObjCXX/arc-pseudo-destructors.mm index d21844addfa..b79d9a3447b 100644 --- a/clang/test/CodeGenObjCXX/arc-pseudo-destructors.mm +++ b/clang/test/CodeGenObjCXX/arc-pseudo-destructors.mm @@ -2,16 +2,16 @@ // CHECK-LABEL: define void @_Z28test_objc_object_pseudo_dtorPU8__strongP11objc_objectPU6__weakS0_ void test_objc_object_pseudo_dtor(__strong id *ptr, __weak id *wptr) { - // CHECK: load i8*** - // CHECK-NEXT: load i8** + // CHECK: load i8**, i8*** + // CHECK-NEXT: load i8*, i8** // CHECK-NEXT: call void @objc_release ptr->~id(); // CHECK: call void @objc_destroyWeak(i8** {{%.*}}) wptr->~id(); - // CHECK: load i8*** - // CHECK-NEXT: load i8** + // CHECK: load i8**, i8*** + // CHECK-NEXT: load i8*, i8** // CHECK-NEXT: call void @objc_release (*ptr).~id(); diff --git a/clang/test/CodeGenObjCXX/arc-references.mm b/clang/test/CodeGenObjCXX/arc-references.mm index 0acb6d5659b..2bd21c31b4f 100644 --- a/clang/test/CodeGenObjCXX/arc-references.mm +++ b/clang/test/CodeGenObjCXX/arc-references.mm @@ -67,7 +67,7 @@ void test5(__strong id &x) { // CHECK-NEXT: store [[A]]* [[OBJ_A]], [[A]]** [[REFTMP:%[a-zA-Z0-9]+]] // CHECK-NEXT: call void @_Z4sinkOU8__strongP1A sink(x); - // CHECK-NEXT: [[OBJ_A:%[a-zA-Z0-9]+]] = load [[A]]** [[REFTMP]] + // CHECK-NEXT: [[OBJ_A:%[a-zA-Z0-9]+]] = load [[A]]*, [[A]]** [[REFTMP]] // CHECK-NEXT: [[OBJ_ID:%[a-zA-Z0-9]+]] = bitcast [[A]]* [[OBJ_A]] to i8* // CHECK-NEXT: call void @objc_release // CHECK-NEXT: store i32 17, i32 diff --git a/clang/test/CodeGenObjCXX/arc-special-member-functions.mm b/clang/test/CodeGenObjCXX/arc-special-member-functions.mm index e3d13a60797..df3c22916f5 100644 --- a/clang/test/CodeGenObjCXX/arc-special-member-functions.mm +++ b/clang/test/CodeGenObjCXX/arc-special-member-functions.mm @@ -93,12 +93,12 @@ void test_ObjCBlockMember_copy_assign(ObjCBlockMember m1, ObjCBlockMember m2) { // Implicitly-generated copy assignment operator for ObjCBlockMember // CHECK: define linkonce_odr dereferenceable({{[0-9]+}}) {{%.*}}* @_ZN15ObjCBlockMemberaSERKS_( // CHECK: [[T0:%.*]] = getelementptr inbounds [[T:%.*]], [[T:%.*]]* {{%.*}}, i32 0, i32 0 -// CHECK-NEXT: [[T1:%.*]] = load i32 (i32)** [[T0]], align 8 +// CHECK-NEXT: [[T1:%.*]] = load i32 (i32)*, i32 (i32)** [[T0]], align 8 // CHECK-NEXT: [[T2:%.*]] = bitcast i32 (i32)* [[T1]] to i8* // CHECK-NEXT: [[T3:%.*]] = call i8* @objc_retainBlock(i8* [[T2]]) // CHECK-NEXT: [[T4:%.*]] = bitcast i8* [[T3]] to i32 (i32)* // CHECK-NEXT: [[T5:%.*]] = getelementptr inbounds [[T]], [[T]]* {{%.*}}, i32 0, i32 0 -// CHECK-NEXT: [[T6:%.*]] = load i32 (i32)** [[T5]], align 8 +// CHECK-NEXT: [[T6:%.*]] = load i32 (i32)*, i32 (i32)** [[T5]], align 8 // CHECK-NEXT: store i32 (i32)* [[T4]], i32 (i32)** [[T5]] // CHECK-NEXT: [[T7:%.*]] = bitcast i32 (i32)* [[T6]] to i8* // CHECK-NEXT: call void @objc_release(i8* [[T7]]) diff --git a/clang/test/CodeGenObjCXX/arc.mm b/clang/test/CodeGenObjCXX/arc.mm index 6b42a4ca48e..c66417ba247 100644 --- a/clang/test/CodeGenObjCXX/arc.mm +++ b/clang/test/CodeGenObjCXX/arc.mm @@ -21,7 +21,7 @@ void test0(__weak id *wp, __weak volatile id *wvp) { // CHECK: [[T0:%.*]] = call i8* @_Z12test0_helperv() // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]]) - // CHECK-NEXT: [[T2:%.*]] = load i8*** {{%.*}}, align 8 + // CHECK-NEXT: [[T2:%.*]] = load i8**, i8*** {{%.*}}, align 8 // CHECK-NEXT: [[T3:%.*]] = call i8* @objc_storeWeak(i8** [[T2]], i8* [[T1]]) // CHECK-NEXT: [[T4:%.*]] = call i8* @objc_retain(i8* [[T3]]) // CHECK-NEXT: store i8* [[T4]], i8** @@ -30,7 +30,7 @@ void test0(__weak id *wp, __weak volatile id *wvp) { // CHECK: [[T0:%.*]] = call i8* @_Z12test0_helperv() // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]]) - // CHECK-NEXT: [[T2:%.*]] = load i8*** {{%.*}}, align 8 + // CHECK-NEXT: [[T2:%.*]] = load i8**, i8*** {{%.*}}, align 8 // CHECK-NEXT: [[T3:%.*]] = call i8* @objc_storeWeak(i8** [[T2]], i8* [[T1]]) // CHECK-NEXT: [[T4:%.*]] = call i8* @objc_loadWeakRetained(i8** [[T2]]) // CHECK-NEXT: store i8* [[T4]], i8** @@ -67,28 +67,28 @@ void test34(int cond) { // CHECK-NEXT: store i8* null, i8** [[STRONG]] // CHECK-NEXT: call i8* @objc_initWeak(i8** [[WEAK]], i8* null) - // CHECK-NEXT: [[T0:%.*]] = load i32* [[COND]] + // CHECK-NEXT: [[T0:%.*]] = load i32, i32* [[COND]] // CHECK-NEXT: [[T1:%.*]] = icmp ne i32 [[T0]], 0 // CHECK: [[ARG:%.*]] = phi i8** // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null // CHECK-NEXT: [[T1:%.*]] = select i1 [[T0]], i8** null, i8** [[TEMP1]] // CHECK-NEXT: br i1 [[T0]], - // CHECK: [[T0:%.*]] = load i8** [[ARG]] + // CHECK: [[T0:%.*]] = load i8*, i8** [[ARG]] // CHECK-NEXT: store i8* [[T0]], i8** [[TEMP1]] // CHECK-NEXT: br label // CHECK: [[W0:%.*]] = phi i8* [ [[T0]], {{%.*}} ], [ undef, {{%.*}} ] // CHECK: call void @_Z11test34_sinkPU15__autoreleasingP11objc_object(i8** [[T1]]) // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null // CHECK-NEXT: br i1 [[T0]], - // CHECK: [[T0:%.*]] = load i8** [[TEMP1]] + // CHECK: [[T0:%.*]] = load i8*, i8** [[TEMP1]] // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]]) // CHECK-NEXT: call void (...)* @clang.arc.use(i8* [[W0]]) - // CHECK-NEXT: [[T2:%.*]] = load i8** [[ARG]] + // CHECK-NEXT: [[T2:%.*]] = load i8*, i8** [[ARG]] // CHECK-NEXT: store i8* [[T1]], i8** [[ARG]] // CHECK-NEXT: call void @objc_release(i8* [[T2]]) // CHECK-NEXT: br label - // CHECK: [[T0:%.*]] = load i32* [[COND]] + // CHECK: [[T0:%.*]] = load i32, i32* [[COND]] // CHECK-NEXT: [[T1:%.*]] = icmp ne i32 [[T0]], 0 // CHECK: [[ARG:%.*]] = phi i8** // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null @@ -103,7 +103,7 @@ void test34(int cond) { // CHECK: call void @_Z11test34_sinkPU15__autoreleasingP11objc_object(i8** [[T1]]) // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null // CHECK-NEXT: br i1 [[T0]], - // CHECK: [[T0:%.*]] = load i8** [[TEMP2]] + // CHECK: [[T0:%.*]] = load i8*, i8** [[TEMP2]] // CHECK-NEXT: call i8* @objc_storeWeak(i8** [[ARG]], i8* [[T0]]) // CHECK-NEXT: br label @@ -203,7 +203,7 @@ template void test37<Test37>(Test37 *a); // CHECK-NEXT: [[COLL:%.*]] = bitcast i8* [[T2]] to [[NSARRAY]]* // Make sure it's not immediately released before starting the iteration. -// CHECK-NEXT: load i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK-NEXT: load i8*, i8** @OBJC_SELECTOR_REFERENCES_ // CHECK-NEXT: [[T0:%.*]] = bitcast [[NSARRAY]]* [[COLL]] to i8* // CHECK-NEXT: @objc_msgSend @@ -291,9 +291,9 @@ template void test40_helper<int>(); // CHECK: [[X:%.*]] = alloca i8* // CHECK-NEXT: [[TEMP:%.*]] = alloca i8* // CHECK-NEXT: store i8* null, i8** [[X]] -// CHECK: [[T0:%.*]] = load i8** [[X]] +// CHECK: [[T0:%.*]] = load i8*, i8** [[X]] // CHECK-NEXT: store i8* [[T0]], i8** [[TEMP]] // CHECK: @objc_msgSend -// CHECK-NEXT: [[T0:%.*]] = load i8** [[TEMP]] +// CHECK-NEXT: [[T0:%.*]] = load i8*, i8** [[TEMP]] // CHECK-NEXT: call i8* @objc_retain(i8* [[T0]]) diff --git a/clang/test/CodeGenObjCXX/exceptions-legacy.mm b/clang/test/CodeGenObjCXX/exceptions-legacy.mm index f1ac44df30c..f6cd29647ee 100644 --- a/clang/test/CodeGenObjCXX/exceptions-legacy.mm +++ b/clang/test/CodeGenObjCXX/exceptions-legacy.mm @@ -26,7 +26,7 @@ void test0(id obj) { // Leave the @synchronized. The reload of obj here is unnecessary. // CHECK: call void @objc_exception_try_exit([[BUF_T]]* [[BUF]]) -// CHECK-NEXT: [[T0:%.*]] = load i8** +// CHECK-NEXT: [[T0:%.*]] = load i8*, i8** // CHECK-NEXT: call i32 @objc_sync_exit(i8* [[T0]]) // CHECK-NEXT: ret void @@ -34,12 +34,12 @@ void test0(id obj) { // CHECK: [[T0:%.*]] = landingpad // CHECK-NEXT: cleanup // CHECK-NEXT: call void @objc_exception_try_exit([[BUF_T]]* [[BUF]]) -// CHECK-NEXT: [[T0:%.*]] = load i8** +// CHECK-NEXT: [[T0:%.*]] = load i8*, i8** // CHECK-NEXT: call i32 @objc_sync_exit(i8* [[T0]]) // CHECK-NEXT: resume // ObjC EH "cleanup". -// CHECK: [[T0:%.*]] = load i8** +// CHECK: [[T0:%.*]] = load i8*, i8** // CHECK-NEXT: call i32 @objc_sync_exit(i8* [[T0]]) // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_exception_extract([[BUF_T]]* [[BUF]]) // CHECK-NEXT: call void @objc_exception_throw(i8* [[T0]]) @@ -75,6 +75,6 @@ void test1(id obj, bool *failed) { // CHECK-NEXT: resume // Catch handler. Reload of 'failed' address is unnecessary. -// CHECK: [[T0:%.*]] = load i8** +// CHECK: [[T0:%.*]] = load i8*, i8** // CHECK-NEXT: store i8 1, i8* [[T0]], // CHECK-NEXT: br label diff --git a/clang/test/CodeGenObjCXX/gc.mm b/clang/test/CodeGenObjCXX/gc.mm index 0f96d9e264b..2e2ad0f41e6 100644 --- a/clang/test/CodeGenObjCXX/gc.mm +++ b/clang/test/CodeGenObjCXX/gc.mm @@ -12,9 +12,9 @@ namespace test0 { // CHECK-LABEL: define void @_ZN5test01AC2Ev( // CHECK: [[THIS:%.*]] = alloca [[TEST0:%.*]]*, align 8 // CHECK-NEXT: store -// CHECK-NEXT: [[T0:%.*]] = load [[TEST0]]** [[THIS]] +// CHECK-NEXT: [[T0:%.*]] = load [[TEST0]]*, [[TEST0]]** [[THIS]] // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds [[TEST0]], [[TEST0]]* [[T0]], i32 0, i32 0 -// CHECK-NEXT: [[T2:%.*]] = load i8** @_ZN5test01xE +// CHECK-NEXT: [[T2:%.*]] = load i8*, i8** @_ZN5test01xE // CHECK-NEXT: call i8* @objc_assign_strongCast(i8* [[T2]], i8** [[T1]]) // CHECK-NEXT: ret void } diff --git a/clang/test/CodeGenObjCXX/lambda-expressions.mm b/clang/test/CodeGenObjCXX/lambda-expressions.mm index 175b68344b3..4d9b8d0bd3b 100644 --- a/clang/test/CodeGenObjCXX/lambda-expressions.mm +++ b/clang/test/CodeGenObjCXX/lambda-expressions.mm @@ -65,7 +65,7 @@ void take_block(void (^block)()) { block(); } // Check lines for BlockInLambda test below // ARC-LABEL: define internal i32 @___ZZN13BlockInLambda1X1fEvENKUlvE_clEv_block_invoke // ARC: [[Y:%.*]] = getelementptr inbounds %"struct.BlockInLambda::X", %"struct.BlockInLambda::X"* {{.*}}, i32 0, i32 1 -// ARC-NEXT: [[YVAL:%.*]] = load i32* [[Y]], align 4 +// ARC-NEXT: [[YVAL:%.*]] = load i32, i32* [[Y]], align 4 // ARC-NEXT: ret i32 [[YVAL]] typedef int (^fptr)(); diff --git a/clang/test/CodeGenObjCXX/lvalue-reference-getter.mm b/clang/test/CodeGenObjCXX/lvalue-reference-getter.mm index 87c132080aa..3547ebe9171 100644 --- a/clang/test/CodeGenObjCXX/lvalue-reference-getter.mm +++ b/clang/test/CodeGenObjCXX/lvalue-reference-getter.mm @@ -22,7 +22,7 @@ static SetSection gSetSection; @end // CHECK: [[SELF:%.*]] = alloca [[T6:%.*]]*, align -// CHECK: [[T0:%.*]] = load {{.*}}* [[SELF]], align -// CHECK: [[T1:%.*]] = load {{.*}}* @OBJC_SELECTOR_REFERENCES_ +// CHECK: [[T0:%.*]] = load {{.*}}, {{.*}}* [[SELF]], align +// CHECK: [[T1:%.*]] = load {{.*}}, {{.*}}* @OBJC_SELECTOR_REFERENCES_ // CHECK: [[C:%.*]] = call dereferenceable({{[0-9]+}}) %struct.SetSection* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend // CHECK: call dereferenceable({{[0-9]+}}) i32* @_ZN10SetSection2atEi(%struct.SetSection* [[C]] diff --git a/clang/test/CodeGenObjCXX/message-reference.mm b/clang/test/CodeGenObjCXX/message-reference.mm index 6b341f866ba..7a1b96e028c 100644 --- a/clang/test/CodeGenObjCXX/message-reference.mm +++ b/clang/test/CodeGenObjCXX/message-reference.mm @@ -16,5 +16,5 @@ @end // CHECK: [[T:%.*]] = call dereferenceable({{[0-9]+}}) i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend -// CHECK: [[U:%.*]] = load i32* [[T]] +// CHECK: [[U:%.*]] = load i32, i32* [[T]] // CHECK [[V:%.*]] = icmp eq i32 [[U]], 0 diff --git a/clang/test/CodeGenObjCXX/message.mm b/clang/test/CodeGenObjCXX/message.mm index af3d81f16c9..b2942448758 100644 --- a/clang/test/CodeGenObjCXX/message.mm +++ b/clang/test/CodeGenObjCXX/message.mm @@ -17,7 +17,7 @@ namespace test0 { template void foo<int>(); // CHECK-LABEL: define weak_odr void @_ZN5test03fooIiEEvv() // CHECK: [[T0:%.*]] = call [[TEST0:%.*]]* @_ZN5test01AcvP5Test0Ev( - // CHECK-NEXT: [[T1:%.*]] = load i8** + // CHECK-NEXT: [[T1:%.*]] = load i8*, i8** // CHECK-NEXT: [[T2:%.*]] = bitcast [[TEST0]]* [[T0]] to i8* // CHECK-NEXT: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*)*)(i8* [[T2]], i8* [[T1]]) // CHECK-NEXT: ret void diff --git a/clang/test/CodeGenObjCXX/property-lvalue-capture.mm b/clang/test/CodeGenObjCXX/property-lvalue-capture.mm index 1242246b24b..26c6db6b441 100644 --- a/clang/test/CodeGenObjCXX/property-lvalue-capture.mm +++ b/clang/test/CodeGenObjCXX/property-lvalue-capture.mm @@ -24,10 +24,10 @@ typedef Quad2<double> Quad2d; } @end -// CHECK: [[TWO:%.*]] = load i8** @OBJC_SELECTOR_REFERENCES_, !invariant.load ![[MD_NUM:[0-9]+]] +// CHECK: [[TWO:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES_, !invariant.load ![[MD_NUM:[0-9]+]] // CHECK: [[THREE:%.*]] = bitcast [[ONET:%.*]]* [[ONE:%.*]] to i8* // CHECK: [[CALL:%.*]] = call nonnull %struct.Quad2* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to %struct.Quad2* (i8*, i8*)*)(i8* [[THREE]], i8* [[TWO]]) -// CHECK: [[FOUR:%.*]] = load i8** @OBJC_SELECTOR_REFERENCES_2, !invariant.load ![[MD_NUM]] +// CHECK: [[FOUR:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES_2, !invariant.load ![[MD_NUM]] // CHECK: [[FIVE:%.*]] = bitcast [[ONET]]* [[ZERO:%.*]] to i8* // CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.Quad2*)*)(i8* [[FIVE]], i8* [[FOUR]], %struct.Quad2* nonnull [[CALL]]) @@ -46,8 +46,8 @@ void test(C *c, const A &a) { const A &result = c.prop = a; } -// CHECK: [[ONE1:%.*]] = load %struct.A** [[AADDR:%.*]], align 8 -// CHECK: [[TWO1:%.*]] = load i8** @OBJC_SELECTOR_REFERENCES_5, !invariant.load ![[MD_NUM]] +// CHECK: [[ONE1:%.*]] = load %struct.A*, %struct.A** [[AADDR:%.*]], align 8 +// CHECK: [[TWO1:%.*]] = load i8*, i8** @OBJC_SELECTOR_REFERENCES_5, !invariant.load ![[MD_NUM]] // CHECK: [[THREE1:%.*]] = bitcast [[TWOT:%.*]]* [[ZERO1:%.*]] to i8* // CHECK: call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %struct.A*)*)(i8* [[THREE1]], i8* [[TWO1]], %struct.A* dereferenceable({{[0-9]+}}) [[ONE1]]) // CHECK: store %struct.A* [[ONE1]], %struct.A** [[RESULT:%.*]], align 8 diff --git a/clang/test/CodeGenObjCXX/property-object-reference-1.mm b/clang/test/CodeGenObjCXX/property-object-reference-1.mm index 79bf9e4f314..4eb77132905 100644 --- a/clang/test/CodeGenObjCXX/property-object-reference-1.mm +++ b/clang/test/CodeGenObjCXX/property-object-reference-1.mm @@ -26,6 +26,6 @@ struct TCPPObject // CHECK: [[cppObjectaddr:%.*]] = alloca %struct.TCPPObject*, align 8 // CHECK: store %struct.TCPPObject* [[cppObject:%.*]], %struct.TCPPObject** [[cppObjectaddr]], align 8 -// CHECK: [[THREE:%.*]] = load %struct.TCPPObject** [[cppObjectaddr]], align 8 +// CHECK: [[THREE:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[cppObjectaddr]], align 8 // CHECK: [[FOUR:%.*]] = bitcast %struct.TCPPObject* [[THREE]] to i8* // CHECK: call void @objc_copyStruct(i8* [[TWO:%.*]], i8* [[FOUR]], i64 256, i1 zeroext true, i1 zeroext false) diff --git a/clang/test/CodeGenObjCXX/property-object-reference-2.mm b/clang/test/CodeGenObjCXX/property-object-reference-2.mm index 20949f71af3..87cebc10836 100644 --- a/clang/test/CodeGenObjCXX/property-object-reference-2.mm +++ b/clang/test/CodeGenObjCXX/property-object-reference-2.mm @@ -30,8 +30,8 @@ struct TCPPObject @end // CHECK-LABEL: define internal void @__copy_helper_atomic_property_( -// CHECK: [[TWO:%.*]] = load %struct.TCPPObject** [[ADDR:%.*]], align 8 -// CHECK: [[THREE:%.*]] = load %struct.TCPPObject** [[ADDR1:%.*]], align 8 +// CHECK: [[TWO:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[ADDR:%.*]], align 8 +// CHECK: [[THREE:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[ADDR1:%.*]], align 8 // CHECK: [[CALL:%.*]] = call i32 @_Z7DEFAULTv() // CHECK: call void @_ZN10TCPPObjectC1ERKS_i(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* dereferenceable({{[0-9]+}}) [[THREE]], i32 [[CALL]]) // CHECK: ret void @@ -44,8 +44,8 @@ struct TCPPObject // CHECK: ret void // CHECK-LABEL: define internal void @__assign_helper_atomic_property_( -// CHECK: [[TWO:%.*]] = load %struct.TCPPObject** [[ADDR:%.*]], align 8 -// CHECK: [[THREE:%.*]] = load %struct.TCPPObject** [[ADDR1:%.*]], align 8 +// CHECK: [[TWO:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[ADDR:%.*]], align 8 +// CHECK: [[THREE:%.*]] = load %struct.TCPPObject*, %struct.TCPPObject** [[ADDR1:%.*]], align 8 // CHECK: [[CALL:%.*]] = call dereferenceable({{[0-9]+}}) %struct.TCPPObject* @_ZN10TCPPObjectaSERKS_(%struct.TCPPObject* [[TWO]], %struct.TCPPObject* dereferenceable({{[0-9]+}}) [[THREE]]) // CHECK: ret void diff --git a/clang/test/CodeGenObjCXX/property-object-reference.mm b/clang/test/CodeGenObjCXX/property-object-reference.mm index 691e6fff8d8..766b3d32ca7 100644 --- a/clang/test/CodeGenObjCXX/property-object-reference.mm +++ b/clang/test/CodeGenObjCXX/property-object-reference.mm @@ -25,11 +25,11 @@ static Foo gFoo; @end // CHECK: [[T0:%.*]] = load {{%.*}} [[S0:%.*]] -// CHECK: load i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_ // CHECK: [[T2:%.*]] = bitcast {{%.*}} [[T0]] to i8* // CHECK: @objc_msgSend // CHECK: [[R0:%.*]] = load {{%.*}} [[U0:%.*]] -// CHECK: load i8** @OBJC_SELECTOR_REFERENCES_ +// CHECK: load i8*, i8** @OBJC_SELECTOR_REFERENCES_ // CHECK: [[R2:%.*]] = bitcast {{%.*}} [[R0]] to i8* // CHECK: @objc_msgSend diff --git a/clang/test/CodeGenObjCXX/property-reference.mm b/clang/test/CodeGenObjCXX/property-reference.mm index 849b6062677..db7f5a62151 100644 --- a/clang/test/CodeGenObjCXX/property-reference.mm +++ b/clang/test/CodeGenObjCXX/property-reference.mm @@ -42,7 +42,7 @@ namespace test1 { @end // CHECK: define internal dereferenceable({{[0-9]+}}) [[A:%.*]]* @"\01-[Test1 prop1]"( // CHECK: [[SELF:%.*]] = alloca [[TEST1:%.*]]*, align 8 -// CHECK: [[T0:%.*]] = load [[TEST1]]** [[SELF]] +// CHECK: [[T0:%.*]] = load [[TEST1]]*, [[TEST1]]** [[SELF]] // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST1]]* [[T0]] to i8* // CHECK-NEXT: [[T2:%.*]] = getelementptr inbounds i8, i8* [[T1]], i64 0 // CHECK-NEXT: [[T3:%.*]] = bitcast i8* [[T2]] to [[A]]* @@ -68,10 +68,10 @@ template void test2<int>(Test2*); // CHECK: [[X:%.*]] = alloca i32, // CHECK: @objc_msgSend // CHECK: store i32 {{%.*}}, i32* [[X]], -// CHECK: load i32* [[X]], +// CHECK: load i32, i32* [[X]], // CHECK: @objc_msgSend // CHECK: @objc_msgSend -// CHECK: load i32* [[X]], +// CHECK: load i32, i32* [[X]], // CHECK-NEXT: add nsw // CHECK: @objc_msgSend // CHECK-NEXT: ret void @@ -87,10 +87,10 @@ template void test3<int>(Test2*); // CHECK: [[X:%.*]] = alloca i32, // CHECK: @objc_msgSend // CHECK: store i32 {{%.*}}, i32* [[X]], -// CHECK: load i32* [[X]], +// CHECK: load i32, i32* [[X]], // CHECK: @objc_msgSend // CHECK: @objc_msgSend -// CHECK: load i32* [[X]], +// CHECK: load i32, i32* [[X]], // CHECK-NEXT: add nsw // CHECK: @objc_msgSend // CHECK-NEXT: ret void |