Lines Matching refs:UNOPT
2 …t-llvm -fblocks -fobjc-arc -fobjc-runtime-has-weak -o - %s | FileCheck -check-prefix=CHECK-UNOPT %s
632 // CHECK-UNOPT-LABEL: define void @test18(
633 // CHECK-UNOPT: [[X:%.*]] = alloca i8*,
634 // CHECK-UNOPT-NEXT: [[BLOCK:%.*]] = alloca [[BLOCK_T:<{.*}>]],
635 // CHECK-UNOPT-NEXT: store i8* null, i8** [[X]]
636 // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[X]],
637 // CHECK-UNOPT-NEXT: [[SLOTREL:%.*]] = getelementptr inbounds [[BLOCK_T]], [[BLOCK_T]]* [[BLOCK]], …
638 // CHECK-UNOPT: [[SLOT:%.*]] = getelementptr inbounds [[BLOCK_T]], [[BLOCK_T]]* [[BLOCK]], i32…
639 // CHECK-UNOPT-NEXT: [[T0:%.*]] = load i8*, i8** [[X]],
640 // CHECK-UNOPT-NEXT: [[T1:%.*]] = call i8* @objc_retain(i8* [[T0]])
641 // CHECK-UNOPT-NEXT: store i8* [[T1]], i8** [[SLOT]],
642 // CHECK-UNOPT-NEXT: bitcast
643 // CHECK-UNOPT-NEXT: call void @test18_helper(
644 // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[SLOTREL]], i8* null) [[NUW:#[0-9]+]]
645 // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[X]], i8* null) [[NUW]]
646 // CHECK-UNOPT-NEXT: ret void
650 // CHECK-UNOPT-LABEL: define internal void @__copy_helper_block_.{{[0-9]+}}(i8*, i8*) #{{[0-9]+}…
651 // CHECK-UNOPT: [[T0:%.*]] = load i8*, i8**
652 // CHECK-UNOPT-NEXT: [[SRC:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]*
653 // CHECK-UNOPT-NEXT: [[T0:%.*]] = load i8*, i8**
654 // CHECK-UNOPT-NEXT: [[DST:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]*
655 // CHECK-UNOPT-NEXT: [[T0:%.*]] = getelementptr inbounds [[BLOCK_T]], [[BLOCK_T]]* [[SRC]], i32 0, …
656 // CHECK-UNOPT-NEXT: [[T1:%.*]] = getelementptr inbounds [[BLOCK_T]], [[BLOCK_T]]* [[DST]], i32 0, …
657 // CHECK-UNOPT-NEXT: [[T2:%.*]] = load i8*, i8** [[T0]]
658 // CHECK-UNOPT-NEXT: store i8* null, i8** [[T1]]
659 // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[T1]], i8* [[T2]]) [[NUW]]
660 // CHECK-UNOPT-NEXT: ret void
662 // CHECK-UNOPT-LABEL: define internal void @__destroy_helper_block_.{{[0-9]+}}(i8*) #{{[0-9]+}} {
663 // CHECK-UNOPT: [[T0:%.*]] = load i8*, i8**
664 // CHECK-UNOPT-NEXT: [[T1:%.*]] = bitcast i8* [[T0]] to [[BLOCK_T]]*
665 // CHECK-UNOPT-NEXT: [[T2:%.*]] = getelementptr inbounds [[BLOCK_T]], [[BLOCK_T]]* [[T1]], i32 0, i…
666 // CHECK-UNOPT-NEXT: call void @objc_storeStrong(i8** [[T2]], i8* null)
667 // CHECK-UNOPT-NEXT: ret void
710 // CHECK-UNOPT: attributes [[NUW]] = { nounwind }