Lines Matching refs:T0
23 // CHECK-NEXT: [[T0:%.*]] = load i8** [[Y]]
24 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
27 // CHECK-NEXT: [[T0:%.*]] = load i8** [[Y]]
28 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
31 // CHECK-NEXT: [[T0:%.*]] = load i8** [[RET]]
32 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_autoreleaseReturnValue(i8* [[T0]])
87 // CHECK-NEXT: [[T0:%.*]] = load [[TEST3]]** [[X]]
89 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST3]]* [[T0]] to i8*
94 // CHECK-NEXT: [[T0:%.*]] = load [[TEST3]]** [[X]]
95 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST3]]* [[T0]] to i8*
200 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retain(i8* [[YVAL]]) nounwind
202 // CHECK-NEXT: store i8* [[T0]], i8** [[VAR]]
209 // CHECK-NEXT: [[T0:%.*]] = load [[TEST5]]** [[X]]
210 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST5]]* [[T0]] to i8*
232 // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
233 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]]) nounwind
246 // CHECK-NEXT: [[T0:%.*]] = call i8* @test8_helper()
247 // CHECK-NEXT: store i8* [[T0]], i8** [[X]]
248 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind
286 // CHECK-NEXT: [[T0:%.*]] = call [[TEST10]]* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
287 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST10]]* [[T0]] to i8*
292 // CHECK-NEXT: [[T0:%.*]] = call [[TEST10]]* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
293 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST10]]* [[T0]] to i8*
298 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST10]]* [[V]] to i8*
299 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
300 // CHECK-NEXT: [[T0:%.*]] = load i8** [[Y]]
301 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
302 // CHECK-NEXT: [[T0:%.*]] = load [[TEST10]]** [[X]]
303 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST10]]* [[T0]] to i8*
313 // CHECK-NEXT: [[T0:%.*]] = load i8* ()** [[F]], align
314 // CHECK-NEXT: [[T1:%.*]] = call i8* [[T0]]()
330 // CHECK-NEXT: [[T0:%.*]] = call i8* @test12_helper()
331 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
336 // CHECK-NEXT: [[T0:%.*]] = call i8* @test12_helper()
337 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
378 // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
379 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind
405 // CHECK-NEXT: [[T0:%.*]] = getelementptr
406 // CHECK-NEXT: store i8* [[BASE2]], i8** [[T0]]
426 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST16]]* [[BASE]] to i8*
427 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds i8* [[T0]], i64 [[Y_OFF]]
433 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST16]]* [[BASE]] to i8*
434 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds i8* [[T0]], i64 [[Z_OFF]]
460 // CHECK-NEXT: [[T0:%.*]] = bitcast [5 x i8*]* [[X]] to i8*
461 // CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[T0]], i8 0, i64 40, i32 16, i1 false)
470 // CHECK-NEXT: [[T0:%.*]] = load i8** [[SLOT]]
472 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind
480 // CHECK-NEXT: [[T0:%.*]] = load i8** [[CUR]]
481 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
497 // CHECK-NEXT: [[T0:%.*]] = load i32* [[N]], align 4
498 // CHECK-NEXT: [[DIM:%.*]] = zext i32 [[T0]] to i64
501 // CHECK-NEXT: [[T0:%.*]] = call i8* @llvm.stacksave()
502 // CHECK-NEXT: store i8* [[T0]], i8** [[SAVED_STACK]]
508 // CHECK-NEXT: [[T0:%.*]] = bitcast i8** [[VLA]] to i8*
510 // CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[T0]], i8 0, i64 [[T1]], i32 8, i1 false)
519 // CHECK-NEXT: [[T0:%.*]] = load i8** [[CUR]]
520 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
524 // CHECK: [[T0:%.*]] = load i8** [[SAVED_STACK]]
525 // CHECK-NEXT: call void @llvm.stackrestore(i8* [[T0]])
538 // CHECK-NEXT: [[T0:%.*]] = load i32* [[N]], align 4
539 // CHECK-NEXT: [[DIM:%.*]] = zext i32 [[T0]] to i64
541 // CHECK-NEXT: [[T0:%.*]] = call i8* @llvm.stacksave()
542 // CHECK-NEXT: store i8* [[T0]], i8** [[SAVED_STACK]]
546 // CHECK-NEXT: [[T0:%.*]] = mul nuw i64 2, [[DIM]]
547 // CHECK-NEXT: [[VLA:%.*]] = alloca [3 x i8*], i64 [[T0]], align 16
550 // CHECK-NEXT: [[T0:%.*]] = bitcast [3 x i8*]* [[VLA]] to i8*
553 // CHECK-NEXT: call void @llvm.memset.p0i8.i64(i8* [[T0]], i8 0, i64 [[T2]], i32 8, i1 false)
556 // CHECK-NEXT: [[T0:%.*]] = mul nuw i64 2, [[DIM]]
558 // CHECK-NEXT: [[T1:%.*]] = mul nuw i64 [[T0]], 3
565 // CHECK-NEXT: [[T0:%.*]] = load i8** [[CUR]]
566 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
570 // CHECK: [[T0:%.*]] = load i8** [[SAVED_STACK]]
571 // CHECK-NEXT: call void @llvm.stackrestore(i8* [[T0]])
586 // CHECK-NEXT: [[T0:%.*]] = load i8* [[COND]]
587 // CHECK-NEXT: [[T1:%.*]] = trunc i8 [[T0]] to i1
594 // CHECK: [[T0:%.*]] = phi i8* [ null, {{%.*}} ], [ [[CALL]], {{%.*}} ]
595 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]]) nounwind
599 // CHECK: [[T0:%.*]] = load i8** [[RELVAL]]
600 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind
602 // CHECK: [[T0:%.*]] = load i8** [[X]]
603 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind
623 // CHECK: [[T0:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] to i32 ()*
624 // CHECK-NEXT: [[T1:%.*]] = bitcast i32 ()* [[T0]] to i8*
640 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST26]]* [[SELF]] to i8*
641 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds i8* [[T0]], i64 [[OFFSET]]
666 // CHECK-NEXT: [[T0:%.*]] = load [[TEST27]]** [[SELF]]
667 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST27]]* [[T0]] to i8*
673 // CHECK-NEXT: [[T0:%.*]] = load [[TEST27]]** [[SELF]]
674 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST27]]* [[T0]] to i8*
676 // CHECK-NEXT: [[T0:%.*]] = load i8** [[RET]]
677 // CHECK-NEXT: ret i8* [[T0]]
691 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST28]]* [[SELF]] to i8*
692 // CHECK-NEXT: [[T1:%.*]] = getelementptr inbounds i8* [[T0]], i64 [[OFFSET]]
717 // CHECK-NEXT: [[T0:%.*]] = load [[TEST29]]** [[SELF]], align 8
725 // CHECK-NEXT: [[T3:%.*]] = bitcast [[TEST29]]* [[T0]] to i8*
731 // CHECK-NEXT: [[T0:%.*]] = bitcast i8* [[CALL]] to [[TEST29]]*
732 // CHECK-NEXT: store [[TEST29]]* [[T0]], [[TEST29]]** [[SELF]]
744 // CHECK-NEXT: [[T0:%.*]] = load [[TEST29]]** [[SELF]]
745 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST29]]* [[T0]] to i8*
749 // CHECK-NEXT: [[T0:%.*]] = load i8** [[RET]]
750 // CHECK-NEXT: ret i8* [[T0]]
763 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retain(i8* {{%.*}})
764 // CHECK-NEXT: store i8* [[T0]], i8** [[ALLOCATOR]]
768 // CHECK-NEXT: [[T0:%.*]] = load [[TEST29]]** [[SELF]]
780 // CHECK-NEXT: [[T0:%.*]] = bitcast i8* [[CALL]] to [[TEST29]]*
781 // CHECK-NEXT: store [[TEST29]]* [[T0]], [[TEST29]]** [[SELF]]
784 // CHECK-NEXT: [[T0:%.*]] = bitcast i8* [[CALL]] to [[TEST29]]*
785 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST29]]* [[T0]] to i8*
794 // CHECK-NEXT: [[T0:%.*]] = load [[TEST29]]** [[SELF]]
795 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST29]]* [[T0]] to i8*
803 // CHECK-NEXT: [[T0:%.*]] = load i8** [[ALLOCATOR]]
804 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
806 // CHECK-NEXT: [[T0:%.*]] = load [[TEST29]]** [[SELF]]
807 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST29]]* [[T0]] to i8*
811 // CHECK-NEXT: [[T0:%.*]] = load i8** [[RET]]
812 // CHECK-NEXT: ret i8* [[T0]]
836 // CHECK-NEXT: [[T0:%.*]] = load [[TEST30]]** [[SELF]]
838 // CHECK-NEXT: [[T2:%.*]] = bitcast [[TEST30]]* [[T0]] to i8*
842 // CHECK-NEXT: [[T0:%.*]] = bitcast [[TEST30_HELPER]]* [[CALL]] to i8*
849 // CHECK-NEXT#: [[T6:%.*]] = call i8* @objc_retain(i8* [[T0]])
851 // CHECK-NEXT: store i8* [[T0]], i8** [[T4]]
854 // CHECK-NEXT: [[T0:%.*]] = load [[TEST30]]** [[SELF]]
855 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST30]]* [[T0]] to i8*
863 // CHECK-NEXT: [[T0:%.*]] = load [[TEST30]]** [[SELF]]
864 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST30]]* [[T0]] to i8*
868 // CHECK-NEXT: [[T0:%.*]] = load i8** [[RET]]
869 // CHECK-NEXT: ret i8* [[T0]]
892 // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]],
893 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
897 // CHECK-NEXT: [[T0:%.*]] = load i8** [[SLOT]]
898 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
899 // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
900 // CHECK-NEXT: call void @objc_release(i8* [[T0]]) nounwind, !clang.imprecise_release
909 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[CALL]])
910 // CHECK-NEXT: ret i8* [[T0]]
944 // CHECK-NEXT: [[T0:%.*]] = load [[A_T]]** [[A]]
945 // CHECK-NEXT: store [[A_T]]* [[T0]], [[A_T]]** [[TEMP0]]
949 // CHECK-NEXT: [[T0:%.*]] = load [[A_T]]** [[TEMP0]]
950 // CHECK-NEXT: [[T1:%.*]] = bitcast [[A_T]]* [[T0]] to i8*
959 // CHECK-NEXT: [[T0:%.*]] = load [[A_T]]** [[A]]
960 // CHECK-NEXT: store [[A_T]]* [[T0]], [[A_T]]** [[TEMP1]]
964 // CHECK-NEXT: [[T0:%.*]] = load [[A_T]]** [[TEMP1]]
965 // CHECK-NEXT: [[T1:%.*]] = bitcast [[A_T]]* [[T0]] to i8*
989 // CHECK-NEXT: [[T0:%.*]] = load [[A_T]]** [[TEMP2]]
990 // CHECK-NEXT: [[T1:%.*]] = bitcast [[A_T]]* [[T0]] to i8*
1024 // CHECK-NEXT: [[T0:%.*]] = load i32* [[COND]]
1025 // CHECK-NEXT: [[T1:%.*]] = icmp ne i32 [[T0]], 0
1027 // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null
1028 // CHECK-NEXT: [[T1:%.*]] = select i1 [[T0]], i8** null, i8** [[TEMP1]]
1029 // CHECK-NEXT: br i1 [[T0]],
1030 // CHECK: [[T0:%.*]] = load i8** [[ARG]]
1031 // CHECK-NEXT: store i8* [[T0]], i8** [[TEMP1]]
1034 // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null
1035 // CHECK-NEXT: br i1 [[T0]],
1036 // CHECK: [[T0:%.*]] = load i8** [[TEMP1]]
1037 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
1043 // CHECK: [[T0:%.*]] = load i32* [[COND]]
1044 // CHECK-NEXT: [[T1:%.*]] = icmp ne i32 [[T0]], 0
1046 // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null
1047 // CHECK-NEXT: [[T1:%.*]] = select i1 [[T0]], i8** null, i8** [[TEMP2]]
1048 // CHECK-NEXT: br i1 [[T0]],
1049 // CHECK: [[T0:%.*]] = call i8* @objc_loadWeak(i8** [[ARG]])
1050 // CHECK-NEXT: store i8* [[T0]], i8** [[TEMP2]]
1053 // CHECK-NEXT: [[T0:%.*]] = icmp eq i8** [[ARG]], null
1054 // CHECK-NEXT: br i1 [[T0]],
1055 // CHECK: [[T0:%.*]] = load i8** [[TEMP2]]
1056 // CHECK-NEXT: call i8* @objc_storeWeak(i8** [[ARG]], i8* [[T0]])
1081 // CHECK-NEXT: [[T0:%.*]] = load i8** [[STRONG]]
1082 // CHECK-NEXT: store i8* [[T0]], i8** [[TEMP1]]
1086 // CHECK-NEXT: [[T0:%.*]] = load i8** [[TEMP1]]
1087 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
1092 // CHECK-NEXT: [[T0:%.*]] = load i8** [[STRONG]]
1093 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
1111 // CHECK: [[T0:%.*]] = load i8** [[X]]
1113 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
1135 // CHECK-NEXT: [[T0:%.*]] = load [[TEST37]]** [[VAR]]
1136 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST37]]* [[T0]] to i8*
1139 // CHECK-NEXT: [[T0:%.*]] = load i8** [[TEMP]]
1140 // CHECK-NEXT: [[T1:%.*]] = bitcast i8* [[T0]] to [[TEST37]]*
1149 // CHECK-NEXT: [[T0:%.*]] = load [[TEST37]]** [[VAR]]
1150 // CHECK-NEXT: [[T1:%.*]] = bitcast [[TEST37]]* [[T0]] to i8*
1164 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* [[VAR]], i32 0, i32 2
1166 // CHECK-NEXT: store i32 33554432, i32* [[T0]]
1168 // CHECK-NEXT: [[T0:%.*]] = call i8* @test38_source()
1169 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1174 // CHECK: [[T0:%.*]] = bitcast [[BYREF_T]]* [[VAR]] to i8*
1175 // CHECK-NEXT: store i8* [[T0]], i8**
1177 // CHECK: [[T0:%.*]] = bitcast [[BYREF_T]]* [[VAR]] to i8*
1178 // CHECK-NEXT: call void @_Block_object_dispose(i8* [[T0]], i32 8)
1179 // CHECK-NEXT: [[T0:%.*]] = load i8** [[SLOT]]
1180 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
1184 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6
1189 // CHECK-NEXT: store i8* [[T2]], i8** [[T0]]
1193 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6
1194 // CHECK-NEXT: [[T1:%.*]] = load i8** [[T0]]
1199 // CHECK-NEXT: [[T0:%.*]] = load i8** [[SLOT]], align 8
1201 // CHECK-NEXT: call void @objc_release(i8* [[T0]])
1220 // CHECK: [[T0:%.*]] = call i8* @test39_source()
1221 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1227 // CHECK-NEXT: [[T0:%.*]] = load i8** [[VAR]]
1228 // CHECK-NEXT: store i8* [[T0]], i8** [[CAPTURE]]
1229 // CHECK-NEXT: [[T0:%.*]] = bitcast [[BLOCK_T]]* [[BLOCK]] to
1243 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* [[VAR]], i32 0, i32 2
1245 // CHECK-NEXT: store i32 33554432, i32* [[T0]]
1247 // CHECK-NEXT: [[T0:%.*]] = call i8* @test40_source()
1248 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1254 // CHECK: [[T0:%.*]] = bitcast [[BYREF_T]]* [[VAR]] to i8*
1255 // CHECK-NEXT: store i8* [[T0]], i8**
1257 // CHECK: [[T0:%.*]] = bitcast [[BYREF_T]]* [[VAR]] to i8*
1258 // CHECK-NEXT: call void @_Block_object_dispose(i8* [[T0]], i32 8)
1263 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6
1267 // CHECK-NEXT: call void @objc_moveWeak(i8** [[T0]], i8** [[T1]])
1270 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BYREF_T]]* {{%.*}}, i32 0, i32 6
1271 // CHECK-NEXT: call void @objc_destroyWeak(i8** [[T0]])
1297 // CHECK: [[T0:%.*]] = call i8* @test41_source()
1298 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1304 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_loadWeak(i8** [[VAR]])
1305 // CHECK-NEXT: call i8* @objc_initWeak(i8** [[SLOT]], i8* [[T0]])
1313 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_loadWeak(i8** [[SLOT]])
1314 // CHECK-NEXT: call void @test41_consume(i8* [[T0]])
1336 // CHECK: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]]* [[BLOCK]], i32 0, i32 5
1341 // CHECK-NEXT: store [[TEST42]]* [[T4]], [[TEST42]]** [[T0]]
1344 // CHECK-NEXT: [[T1:%.*]] = load [[TEST42]]** [[T0]]
1401 // CHECK: [[T0:%.*]] = call i8* @test46_helper()
1402 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1410 // CHECK: [[T0:%.*]] = call i8* @test46_helper()
1411 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1429 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[CALL]])
1431 // CHECK-NEXT: store i8* [[T0]], i8** [[X]]
1433 // CHECK-NEXT: [[T2:%.*]] = call i8* @objc_retain(i8* [[T0]])
1447 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_initWeak(i8** [[X]], i8* null)
1464 // CHECK-NEXT: [[T0:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[CALL]])
1465 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_autorelease(i8* [[T0]])
1476 // CHECK: [[T0:%.*]] = call i8* @objc_retain
1504 // CHECK-NEXT: [[T0:%.*]] = load i32* [[X]],
1505 // CHECK-NEXT: [[T1:%.*]] = call i8* @test52_helper(i32 [[T0]])
1518 // CHECK-NEXT: [[T0:%.*]] = call i8* @test53_helper()
1519 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retainAutoreleasedReturnValue(i8* [[T0]])
1521 // CHECK-NEXT: [[T0:%.*]] = load i8** [[Y]],
1522 // CHECK-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
1527 // CHECK-NEXT: [[T0:%.*]] = load i8** [[X]]
1528 // CHECK-NEXT: call void @objc_release(i8* [[T0]])