# RUN: llc -O0 -start-before=livedebugvalues -filetype=obj -o - %s | llvm-dwarfdump -v - | FileCheck %s
#
# Derived from (clang -O0 -g -fsanitize=address -fobjc-arc)
#   @protocol NSObject
#   @end
#   @interface NSObject<NSObject>{}
#   + (instancetype)alloc;
#   @end
#   struct CGSize {
#     double width;
#     double height;
#   };
#   typedef struct CGSize CGSize;
#   @interface Object : NSObject
#   - (instancetype)initWithSize:(CGSize)size;
#   - (id)aMessage;
#   @end
#   @implementation MyObject
#   + (id)doWithSize:(CGSize)imageSize andObject:(id)object {
#     return [object aMessage];
#   }
#   @end
#
# CHECK: .debug_info contents:
# CHECK: DW_TAG_subprogram
# CHECK-NEXT:   DW_AT_low_pc [DW_FORM_addr]     (0x0000000000000000)
# CHECK-NEXT:   DW_AT_high_pc [DW_FORM_addr]    ([[FN_END:.*]])
# CHECK: "_cmd"
# CHECK: DW_TAG_formal_parameter
# CHECK-NEXT: DW_AT_location
# CHECK-NEXT:   [0x{{.*}}, 0x{{.*}}):
# CHECK-NOT:    DW_AT_
# CHECK:        [0x{{.*}}, [[FN_END]]):
# CHECK-NEXT: DW_AT_name {{.*}}"imageSize"
--- |
  ; ModuleID = 'test/DebugInfo/AArch64/asan-stack-vars.ll'
  source_filename = "m.m"
  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
  target triple = "arm64-apple-ios"
  
  %0 = type opaque
  %struct._class_t = type { %struct._class_t*, %struct._class_t*, %struct._objc_cache*, i8* (i8*, i8*)**, %struct._class_ro_t* }
  %struct._objc_cache = type opaque
  %struct._class_ro_t = type { i32, i32, i32, i8*, i8*, %struct.__method_list_t*, %struct._objc_protocol_list*, %struct._ivar_list_t*, i8*, %struct._prop_list_t* }
  %struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] }
  %struct._objc_method = type { i8*, i8*, i8* }
  %struct._objc_protocol_list = type { i64, [0 x %struct._protocol_t*] }
  %struct._protocol_t = type { i8*, i8*, %struct._objc_protocol_list*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct._prop_list_t*, i32, i32, i8**, i8*, %struct._prop_list_t* }
  %struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] }
  %struct._ivar_t = type { i32*, i8*, i8*, i32, i32 }
  %struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] }
  %struct._prop_t = type { i8*, i8* }
  %struct.CGSize = type { double, double }
  
  @"OBJC_CLASS_$_Object" = external global %struct._class_t
  @"OBJC_CLASSLIST_REFERENCES_$_" = private global %struct._class_t* @"OBJC_CLASS_$_Object", section "__DATA, __objc_classrefs, regular, no_dead_strip", align 8
  @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [6 x i8] c"alloc\00", section "__TEXT,__objc_methname,cstring_literals", align 1
  @OBJC_SELECTOR_REFERENCES_ = private externally_initialized global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @OBJC_METH_VAR_NAME_, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
  @OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [14 x i8] c"initWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
  @OBJC_SELECTOR_REFERENCES_.2 = private externally_initialized global i8* getelementptr inbounds ([14 x i8], [14 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
  @OBJC_METH_VAR_NAME_.3 = private unnamed_addr constant [9 x i8] c"aMessage\00", section "__TEXT,__objc_methname,cstring_literals", align 1
  @OBJC_SELECTOR_REFERENCES_.4 = private externally_initialized global i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
  @_objc_empty_cache = external global %struct._objc_cache
  @"OBJC_CLASS_$_MyObject" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_MyObject", %struct._class_t* null, %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_CLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8
  @"OBJC_METACLASS_$_MyObject" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_MyObject", %struct._class_t* @"OBJC_CLASS_$_MyObject", %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_METACLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8
  @OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"MyObject\00", section "__TEXT,__objc_classname,cstring_literals", align 1
  @OBJC_METH_VAR_NAME_.5 = private unnamed_addr constant [12 x i8] c"doWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
  @OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [21 x i8] c"@32@0:8{CGSize=dd}16\00", section "__TEXT,__objc_methtype,cstring_literals", align 1
  @"\01l_OBJC_$_CLASS_METHODS_MyObject" = private global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast (i8* (i8*, i8*, [2 x double])* @"\01+[MyObject doWithSize:]" to i8*) }] }, section "__DATA, __objc_const", align 8
  @"\01l_OBJC_METACLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 131, i32 40, i32 40, i8* null, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), %struct.__method_list_t* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_CLASS_METHODS_MyObject" to %struct.__method_list_t*), %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
  @"\01l_OBJC_CLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 130, i32 0, i32 0, i8* null, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), %struct.__method_list_t* null, %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
  @"OBJC_LABEL_CLASS_$" = private global [1 x i8*] [i8* bitcast (%struct._class_t* @"OBJC_CLASS_$_MyObject" to i8*)], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
  @llvm.compiler.used = appending global [12 x i8*] [i8* bitcast (%struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" to i8*), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @OBJC_METH_VAR_NAME_, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_ to i8*), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_.2 to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_.4 to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_CLASS_METHODS_MyObject" to i8*), i8* bitcast ([1 x i8*]* @"OBJC_LABEL_CLASS_$" to i8*)], section "llvm.metadata"
  @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
  @__asan_shadow_memory_dynamic_address = external global i64
  @___asan_gen_ = private unnamed_addr constant [34 x i8] c"2 32 16 9 imageSize 64 8 6 object\00", align 1
  @__stack_chk_guard = external global i8*
  
  ; Function Attrs: noinline sanitize_address ssp uwtable
  define internal i8* @"\01+[MyObject doWithSize:]"(i8* %self, i8* %_cmd, [2 x double] %imageSize.coerce) #0 !dbg !14 {
  entry:
    %StackGuardSlot = alloca i8*
    %0 = call i8* @llvm.stackguard()
    call void @llvm.stackprotector(i8* %0, i8** %StackGuardSlot)
    %1 = load i64, i64* @__asan_shadow_memory_dynamic_address
    %self.addr = alloca i8*, align 8
    %_cmd.addr = alloca i8*, align 8
    %MyAlloca = alloca [96 x i8], align 32, !dbg !35
    %2 = ptrtoint [96 x i8]* %MyAlloca to i64, !dbg !35
    %3 = add i64 %2, 32, !dbg !35
    %4 = inttoptr i64 %3 to %struct.CGSize*, !dbg !35
    %5 = add i64 %2, 64, !dbg !35
    %6 = inttoptr i64 %5 to %0**, !dbg !35
    %7 = inttoptr i64 %2 to i64*, !dbg !35
    store i64 1102416563, i64* %7, !dbg !35
    %8 = add i64 %2, 8, !dbg !35
    %9 = inttoptr i64 %8 to i64*, !dbg !35
    store i64 ptrtoint ([34 x i8]* @___asan_gen_ to i64), i64* %9, !dbg !35
    %10 = add i64 %2, 16, !dbg !35
    %11 = inttoptr i64 %10 to i64*, !dbg !35
    store i64 ptrtoint (i8* (i8*, i8*, [2 x double])* @"\01+[MyObject doWithSize:]" to i64), i64* %11, !dbg !35
    %12 = lshr i64 %2, 3, !dbg !35
    %13 = add i64 %12, %1, !dbg !35
    %14 = add i64 %13, 0, !dbg !35
    %15 = inttoptr i64 %14 to i64*, !dbg !35
    store i64 -940689368107847183, i64* %15, align 1, !dbg !35
    %16 = add i64 %13, 9, !dbg !35
    %17 = inttoptr i64 %16 to i16*, !dbg !35
    store i16 -3085, i16* %17, align 1, !dbg !35
    %18 = add i64 %13, 11, !dbg !35
    %19 = inttoptr i64 %18 to i8*, !dbg !35
    store i8 -13, i8* %19, align 1, !dbg !35
    call void @llvm.dbg.declare(metadata %struct.CGSize* %4, metadata !36, metadata !DIExpression(DW_OP_deref)), !dbg !37
    call void @llvm.dbg.declare(metadata %0** %6, metadata !38, metadata !DIExpression(DW_OP_deref)), !dbg !44
    %20 = bitcast %struct.CGSize* %4 to [2 x double]*
    %21 = ptrtoint [2 x double]* %20 to i64
    %22 = lshr i64 %21, 3
    %23 = add i64 %22, %1
    %24 = inttoptr i64 %23 to i16*
    %25 = load i16, i16* %24
    %26 = icmp ne i16 %25, 0
    br i1 %26, label %27, label %28
  
  ; <label>:27:                                     ; preds = %entry
    call void @__asan_report_store16(i64 %21)
    call void asm sideeffect "", ""()
    unreachable
  
  ; <label>:28:                                     ; preds = %entry
    store [2 x double] %imageSize.coerce, [2 x double]* %20, align 8
    store i8* %self, i8** %self.addr, align 8
    call void @llvm.dbg.declare(metadata i8** %self.addr, metadata !45, metadata !DIExpression()), !dbg !47
    store i8* %_cmd, i8** %_cmd.addr, align 8
    call void @llvm.dbg.declare(metadata i8** %_cmd.addr, metadata !48, metadata !DIExpression()), !dbg !47
    %29 = load %struct._class_t*, %struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_", align 8, !dbg !50
    %30 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_ to i64), i64 3), %1, !dbg !50
    %31 = inttoptr i64 %30 to i8*, !dbg !50
    %32 = load i8, i8* %31, !dbg !50
    %33 = icmp ne i8 %32, 0, !dbg !50
    br i1 %33, label %34, label %35, !dbg !50
  
  ; <label>:34:                                     ; preds = %28
    call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_ to i64)), !dbg !50
    call void asm sideeffect "", ""(), !dbg !50
    unreachable, !dbg !50
  
  ; <label>:35:                                     ; preds = %28
    %36 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_, align 8, !dbg !50, !invariant.load !2
    %37 = bitcast %struct._class_t* %29 to i8*, !dbg !50
    %call = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %37, i8* %36), !dbg !50
    %38 = bitcast i8* %call to %0*, !dbg !50
    %39 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.2 to i64), i64 3), %1, !dbg !51
    %40 = inttoptr i64 %39 to i8*, !dbg !51
    %41 = load i8, i8* %40, !dbg !51
    %42 = icmp ne i8 %41, 0, !dbg !51
    br i1 %42, label %43, label %44, !dbg !51
  
  ; <label>:43:                                     ; preds = %35
    call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.2 to i64)), !dbg !51
    call void asm sideeffect "", ""(), !dbg !51
    unreachable, !dbg !51
  
  ; <label>:44:                                     ; preds = %35
    %45 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.2, align 8, !dbg !51, !invariant.load !2
    %46 = bitcast %0* %38 to i8*, !dbg !51
    %47 = bitcast %struct.CGSize* %4 to [2 x double]*, !dbg !51
    %48 = ptrtoint [2 x double]* %47 to i64, !dbg !51
    %49 = lshr i64 %48, 3, !dbg !51
    %50 = add i64 %49, %1, !dbg !51
    %51 = inttoptr i64 %50 to i16*, !dbg !51
    %52 = load i16, i16* %51, !dbg !51
    %53 = icmp ne i16 %52, 0, !dbg !51
    br i1 %53, label %54, label %55, !dbg !51
  
  ; <label>:54:                                     ; preds = %44
    call void @__asan_report_load16(i64 %48), !dbg !51
    call void asm sideeffect "", ""(), !dbg !51
    unreachable, !dbg !51
  
  ; <label>:55:                                     ; preds = %44
    %56 = load [2 x double], [2 x double]* %47, align 8, !dbg !51
    %call1 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, [2 x double])*)(i8* %46, i8* %45, [2 x double] %56), !dbg !51
    %57 = bitcast i8* %call1 to %0*, !dbg !51
    %58 = ptrtoint %0** %6 to i64, !dbg !44
    %59 = lshr i64 %58, 3, !dbg !44
    %60 = add i64 %59, %1, !dbg !44
    %61 = inttoptr i64 %60 to i8*, !dbg !44
    %62 = load i8, i8* %61, !dbg !44
    %63 = icmp ne i8 %62, 0, !dbg !44
    br i1 %63, label %64, label %65, !dbg !44
  
  ; <label>:64:                                     ; preds = %55
    call void @__asan_report_store8(i64 %58), !dbg !44
    call void asm sideeffect "", ""(), !dbg !44
    unreachable, !dbg !44
  
  ; <label>:65:                                     ; preds = %55
    store %0* %57, %0** %6, align 8, !dbg !44
    %66 = load %0*, %0** %6, align 8, !dbg !52
    %67 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.4 to i64), i64 3), %1, !dbg !53
    %68 = inttoptr i64 %67 to i8*, !dbg !53
    %69 = load i8, i8* %68, !dbg !53
    %70 = icmp ne i8 %69, 0, !dbg !53
    br i1 %70, label %71, label %72, !dbg !53
  
  ; <label>:71:                                     ; preds = %65
    call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.4 to i64)), !dbg !53
    call void asm sideeffect "", ""(), !dbg !53
    unreachable, !dbg !53
  
  ; <label>:72:                                     ; preds = %65
    %73 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.4, align 8, !dbg !53, !invariant.load !2
    %74 = bitcast %0* %66 to i8*, !dbg !53
    %call2 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %74, i8* %73), !dbg !53
    call void asm sideeffect "mov\09fp, fp\09\09; marker for objc_retainAutoreleaseReturnValue", ""(), !dbg !53
    %75 = call i8* @objc_retainAutoreleasedReturnValue(i8* %call2) #3, !dbg !53
    %76 = bitcast %0** %6 to i8**, !dbg !54
    call void @objc_storeStrong(i8** %76, i8* null) #3, !dbg !54
    %77 = tail call i8* @objc_autoreleaseReturnValue(i8* %75) #3, !dbg !54
    store i64 1172321806, i64* %7, !dbg !54
    %78 = add i64 %13, 0, !dbg !54
    %79 = inttoptr i64 %78 to i64*, !dbg !54
    store i64 0, i64* %79, align 1, !dbg !54
    %80 = add i64 %13, 9, !dbg !54
    %81 = inttoptr i64 %80 to i16*, !dbg !54
    store i16 0, i16* %81, align 1, !dbg !54
    %82 = add i64 %13, 11, !dbg !54
    %83 = inttoptr i64 %82 to i8*, !dbg !54
    store i8 0, i8* %83, align 1, !dbg !54
    %84 = call i8* @llvm.stackguard()
    %85 = load volatile i8*, i8** %StackGuardSlot
    %86 = icmp eq i8* %84, %85
    br i1 %86, label %SP_return, label %CallStackCheckFailBlk, !prof !55
  
  SP_return:                                        ; preds = %72
    ret i8* %77, !dbg !54
  
  CallStackCheckFailBlk:                            ; preds = %72
    call void @__stack_chk_fail(), !dbg !47
    unreachable, !dbg !47
  }
  
  ; Function Attrs: nounwind readnone speculatable
  declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
  
  ; Function Attrs: nonlazybind
  declare i8* @objc_msgSend(i8*, i8*, ...) #2
  
  declare i8* @objc_retainAutoreleasedReturnValue(i8* returned)
  
  declare void @objc_storeStrong(i8**, i8*)
  
  declare i8* @objc_autoreleaseReturnValue(i8* returned)
  
  define internal void @asan.module_ctor() {
    call void @__asan_init()
    call void @__asan_version_mismatch_check_v8()
    ret void
  }
  
  declare void @__asan_init()
  
  declare void @__asan_version_mismatch_check_v8()
  
  declare void @__asan_report_load8(i64)
  
  declare void @__asan_report_load16(i64)
  
  declare void @__asan_report_store8(i64)
  
  declare void @__asan_report_store16(i64)
  
  ; Function Attrs: nounwind
  declare void @llvm.stackprotector(i8*, i8**) #3
  
  ; Function Attrs: nounwind
  declare i8* @llvm.stackguard() #3
  
  declare void @__stack_chk_fail()
  
  attributes #0 = { noinline sanitize_address ssp uwtable }
  attributes #1 = { nounwind readnone speculatable }
  attributes #2 = { nonlazybind }
  attributes #3 = { nounwind }
  
  !llvm.dbg.cu = !{!0}
  !llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11, !12}
  !llvm.ident = !{!13}
  
  !0 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !1, producer: "clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, enums: !2, retainedTypes: !3)
  !1 = !DIFile(filename: "m.m", directory: "/")
  !2 = !{}
  !3 = !{!4}
  !4 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyObject", scope: !1, file: !1, line: 15, flags: DIFlagObjcClassComplete, elements: !2, runtimeLang: DW_LANG_ObjC)
  !5 = !{i32 1, !"Objective-C Version", i32 2}
  !6 = !{i32 1, !"Objective-C Image Info Version", i32 0}
  !7 = !{i32 1, !"Objective-C Image Info Section", !"__DATA,__objc_imageinfo,regular,no_dead_strip"}
  !8 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
  !9 = !{i32 1, !"Objective-C Class Properties", i32 64}
  !10 = !{i32 2, !"Dwarf Version", i32 2}
  !11 = !{i32 2, !"Debug Info Version", i32 3}
  !12 = !{i32 7, !"PIC Level", i32 2}
  !13 = !{!"clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)"}
  !14 = distinct !DISubprogram(name: "+[MyObject doWithSize:]", scope: !1, file: !1, line: 16, type: !15, isLocal: true, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !15 = !DISubroutineType(types: !16)
  !16 = !{!17, !24, !26, !29}
  !17 = !DIDerivedType(tag: DW_TAG_typedef, name: "id", file: !1, baseType: !18)
  !18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !19, size: 64)
  !19 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_object", file: !1, elements: !20)
  !20 = !{!21}
  !21 = !DIDerivedType(tag: DW_TAG_member, name: "isa", scope: !19, file: !1, baseType: !22, size: 64)
  !22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !23, size: 64)
  !23 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_class", file: !1, flags: DIFlagFwdDecl)
  !24 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25, flags: DIFlagArtificial | DIFlagObjectPointer)
  !25 = !DIDerivedType(tag: DW_TAG_typedef, name: "Class", file: !1, baseType: !22)
  !26 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27, flags: DIFlagArtificial)
  !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !28, size: 64)
  !28 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_selector", file: !1, flags: DIFlagFwdDecl)
  !29 = !DIDerivedType(tag: DW_TAG_typedef, name: "CGSize", file: !1, line: 10, baseType: !30)
  !30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "CGSize", file: !1, line: 6, size: 128, elements: !31)
  !31 = !{!32, !34}
  !32 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !30, file: !1, line: 7, baseType: !33, size: 64)
  !33 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
  !34 = !DIDerivedType(tag: DW_TAG_member, name: "height", scope: !30, file: !1, line: 8, baseType: !33, size: 64, offset: 64)
  !35 = !DILocation(line: 16, scope: !14)
  !36 = !DILocalVariable(name: "imageSize", arg: 3, scope: !14, file: !1, line: 16, type: !29)
  !37 = !DILocation(line: 16, column: 26, scope: !14)
  !38 = !DILocalVariable(name: "object", scope: !14, file: !1, line: 17, type: !39)
  !39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !40, size: 64)
  !40 = !DICompositeType(tag: DW_TAG_structure_type, name: "Object", scope: !1, file: !1, line: 11, elements: !41, runtimeLang: DW_LANG_ObjC)
  !41 = !{!42}
  !42 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !40, baseType: !43)
  !43 = !DICompositeType(tag: DW_TAG_structure_type, name: "NSObject", scope: !1, file: !1, line: 3, elements: !2, runtimeLang: DW_LANG_ObjC)
  !44 = !DILocation(line: 17, column: 11, scope: !14)
  !45 = !DILocalVariable(name: "self", arg: 1, scope: !14, type: !46, flags: DIFlagArtificial | DIFlagObjectPointer)
  !46 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25)
  !47 = !DILocation(line: 0, scope: !14)
  !48 = !DILocalVariable(name: "_cmd", arg: 2, scope: !14, type: !49, flags: DIFlagArtificial)
  !49 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27)
  !50 = !DILocation(line: 17, column: 21, scope: !14)
  !51 = !DILocation(line: 17, column: 20, scope: !14)
  !52 = !DILocation(line: 18, column: 11, scope: !14)
  !53 = !DILocation(line: 18, column: 10, scope: !14)
  !54 = !DILocation(line: 19, column: 1, scope: !14)
  !55 = !{!"branch_weights", i32 2147481600, i32 2048}

...
---
name:            "\x01+[MyObject doWithSize:]"
alignment:       4
tracksRegLiveness: true
liveins:         
  - { reg: '$x0' }
  - { reg: '$x1' }
  - { reg: '$d0' }
  - { reg: '$d1' }
frameInfo:       
  stackSize:       352
  maxAlignment:    32
  adjustsStack:    true
  hasCalls:        true
  stackProtector:  '%stack.0.StackGuardSlot'
  maxCallFrameSize: 0
  localFrameSize:  144
stack:           
  - { id: 0, name: StackGuardSlot, offset: -40, size: 8, alignment: 8, 
      stack-id: default, local-offset: -8 }
  - { id: 1, name: self.addr, offset: -168, size: 8, alignment: 8, stack-id: default,
      local-offset: -136, debug-info-variable: '!45', debug-info-expression: '!DIExpression()', 
      debug-info-location: '!47' }
  - { id: 2, name: _cmd.addr, offset: -176, size: 8, alignment: 8, stack-id: default,
      local-offset: -144, debug-info-variable: '!48', debug-info-expression: '!DIExpression()', 
      debug-info-location: '!47' }
  - { id: 3, name: MyAlloca, offset: -160, size: 96, alignment: 32, stack-id: default,
      local-offset: -128 }
  - { id: 4, type: spill-slot, offset: -184, size: 8, alignment: 8, stack-id: default }
  - { id: 5, type: spill-slot, offset: -192, size: 8, alignment: 8, stack-id: default }
  - { id: 6, type: spill-slot, offset: -200, size: 8, alignment: 8, stack-id: default }
  - { id: 7, type: spill-slot, offset: -208, size: 8, alignment: 8, stack-id: default }
  - { id: 8, type: spill-slot, offset: -216, size: 8, alignment: 8, stack-id: default }
  - { id: 9, type: spill-slot, offset: -224, size: 8, alignment: 8, stack-id: default }
  - { id: 10, type: spill-slot, offset: -232, size: 8, alignment: 8, stack-id: default }
  - { id: 11, type: spill-slot, offset: -240, size: 8, alignment: 8, stack-id: default }
  - { id: 12, type: spill-slot, offset: -248, size: 8, alignment: 8, stack-id: default }
  - { id: 13, type: spill-slot, offset: -256, size: 8, alignment: 8, stack-id: default }
  - { id: 14, type: spill-slot, offset: -264, size: 8, alignment: 8, stack-id: default }
  - { id: 15, type: spill-slot, offset: -272, size: 8, alignment: 8, stack-id: default }
  - { id: 16, type: spill-slot, offset: -280, size: 8, alignment: 8, stack-id: default }
  - { id: 17, type: spill-slot, offset: -288, size: 8, alignment: 8, stack-id: default }
  - { id: 18, type: spill-slot, offset: -296, size: 8, alignment: 8, stack-id: default }
  - { id: 19, type: spill-slot, offset: -304, size: 8, alignment: 8, stack-id: default }
  - { id: 20, type: spill-slot, offset: -312, size: 8, alignment: 8, stack-id: default }
  - { id: 21, type: spill-slot, offset: -320, size: 8, alignment: 8, stack-id: default }
  - { id: 22, type: spill-slot, offset: -328, size: 8, alignment: 8, stack-id: default }
  - { id: 23, type: spill-slot, offset: -336, size: 8, alignment: 8, stack-id: default }
  - { id: 24, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$lr' }
  - { id: 25, type: spill-slot, offset: -16, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$fp' }
  - { id: 26, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$x27' }
  - { id: 27, type: spill-slot, offset: -32, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$x28' }
body:             |
  bb.0.entry:
    liveins: $x0, $x1, $d0, $d1, $x27, $x28, $lr
  
    early-clobber $sp = frame-setup STPXpre killed $x28, killed $x27, $sp, -4 :: (store 8 into %stack.27), (store 8 into %stack.26)
    frame-setup STPXi killed $fp, killed $lr, $sp, 2 :: (store 8 into %stack.25), (store 8 into %stack.24)
    $fp = frame-setup ADDXri $sp, 16, 0
    $x9 = frame-setup SUBXri $sp, 320, 0
    $sp = ANDXri killed $x9, 7930
    frame-setup CFI_INSTRUCTION def_cfa $w29, 16
    frame-setup CFI_INSTRUCTION offset $w30, -8
    frame-setup CFI_INSTRUCTION offset $w29, -16
    frame-setup CFI_INSTRUCTION offset $w27, -24
    frame-setup CFI_INSTRUCTION offset $w28, -32
    renamable $x8 = ADRP target-flags(aarch64-page) @"\01+[MyObject doWithSize:]"
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @"\01+[MyObject doWithSize:]", 0
    renamable $x9 = ADRP target-flags(aarch64-page) @___asan_gen_
    renamable $x9 = ADDXri killed renamable $x9, target-flags(aarch64-pageoff, aarch64-nc) @___asan_gen_, 0
    $x10 = ADDXri $sp, 192, 0
    renamable $x11 = ADRP target-flags(aarch64-page, aarch64-got) @__asan_shadow_memory_dynamic_address
    renamable $x11 = LDRXui killed renamable $x11, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__asan_shadow_memory_dynamic_address
    $x12 = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard
    $x12 = LDRXui $x12, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard
    $x12 = LDRXui killed $x12, 0 :: (dereferenceable invariant load 8 from @__stack_chk_guard)
    $x13 = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard
    $x13 = LDRXui $x13, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard
    $x13 = LDRXui killed $x13, 0 :: (dereferenceable invariant load 8 from @__stack_chk_guard)
    STRXui killed renamable $x13, $sp, 39 :: (volatile store 8 into %stack.0.StackGuardSlot)
    renamable $x11 = LDRXui killed renamable $x11, 0 :: (load 8 from @__asan_shadow_memory_dynamic_address)
    renamable $x13 = ADDXri renamable $x10, 32, 0, debug-location !35
    renamable $x14 = ADDXri renamable $x10, 64, 0, debug-location !35
    $x15 = MOVZXi 35507, 0, debug-location !35
    $x15 = MOVKXi $x15, 16821, 16, debug-location !35
    STRXui killed renamable $x15, $sp, 24, debug-location !35 :: (store 96 into %stack.3.MyAlloca, align 32)
    STRXui killed renamable $x9, $sp, 25, debug-location !35 :: (store 96 into %stack.3.MyAlloca + 1, align 32)
    STRXui killed renamable $x8, $sp, 26, debug-location !35 :: (store 96 into %stack.3.MyAlloca + 2, align 32)
    renamable $x8 = UBFMXri renamable $x10, 3, 63, debug-location !35
    renamable $x9 = ADDXrs renamable $x11, renamable $x10, 67, debug-location !35
    $x15 = MOVZXi 61937, 0, debug-location !35
    $x15 = MOVKXi $x15, 61937, 16, debug-location !35
    $x15 = MOVKXi $x15, 62194, 48, debug-location !35
    STRXroX killed renamable $x15, renamable $x8, renamable $x11, 0, 0, debug-location !35 :: (store 8 into %ir.15, align 1)
    renamable $x15 = ADDXrs renamable $x8, renamable $x11, 0, debug-location !35
    $w16 = MOVZWi 62451, 0, debug-location !35
    STURHHi killed renamable $w16, killed renamable $x15, 9, debug-location !35 :: (store 2 into %ir.17, align 1)
    renamable $x8 = ADDXrs killed renamable $x8, renamable $x11, 0, debug-location !35
    $w16 = MOVZWi 243, 0, debug-location !35
    STRBBui killed renamable $w16, killed renamable $x8, 11, debug-location !35 :: (store 1 into %ir.19)
    DBG_VALUE renamable $x13, 0, !36, !DIExpression(DW_OP_deref), debug-location !37
    DBG_VALUE renamable $x14, 0, !38, !DIExpression(DW_OP_deref), debug-location !44
    $x8 = ORRXrs $xzr, $x13, 0
    renamable $x15 = UBFMXri renamable $x8, 3, 63
    renamable $w16 = LDRHHroX killed renamable $x15, renamable $x11, 0, 0 :: (load 2 from %ir.24)
    renamable $w16 = UBFMWri killed renamable $w16, 0, 15
    STRXui killed $x1, $sp, 21 :: (store 8 into %stack.4)
    STRDui killed $d1, $sp, 20 :: (store 8 into %stack.5)
    STRDui killed $d0, $sp, 19 :: (store 8 into %stack.6)
    STRXui killed $x0, $sp, 18 :: (store 8 into %stack.7)
    STRXui killed $x13, $sp, 17 :: (store 8 into %stack.8)
    DBG_VALUE $sp, 0, !36, !DIExpression(DW_OP_plus_uconst, 136, DW_OP_deref, DW_OP_deref), debug-location !37
    STRXui killed $x14, $sp, 16 :: (store 8 into %stack.9)
    DBG_VALUE $sp, 0, !38, !DIExpression(DW_OP_plus_uconst, 128, DW_OP_deref, DW_OP_deref), debug-location !44
    STRXui killed $x10, $sp, 15 :: (store 8 into %stack.10)
    STRXui killed $x12, $sp, 14 :: (store 8 into %stack.11)
    STRXui killed $x11, $sp, 13 :: (store 8 into %stack.12)
    STRXui killed $x9, $sp, 12 :: (store 8 into %stack.13)
    STRXui killed $x8, $sp, 11 :: (store 8 into %stack.14)
    CBZW killed renamable $w16, %bb.2
  
  bb.1 (%ir-block.27):
    successors: 
  
    $x0 = LDRXui $sp, 11 :: (load 8 from %stack.14)
    BL @__asan_report_store16, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp
    INLINEASM &"", 1
    BRK 1
  
  bb.2 (%ir-block.28):
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0
    renamable $x9 = ORRXri $xzr, 4097
    renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x9
    renamable $x9 = ADRP target-flags(aarch64-page) @"OBJC_CLASSLIST_REFERENCES_$_"
    renamable $x9 = ADDXri killed renamable $x9, target-flags(aarch64-pageoff, aarch64-nc) @"OBJC_CLASSLIST_REFERENCES_$_", 0
    $d0 = LDRDui $sp, 19 :: (load 8 from %stack.6)
    $x10 = LDRXui $sp, 11 :: (load 8 from %stack.14)
    STRDui killed renamable $d0, renamable $x10, 0 :: (store 8 into %ir.20)
    $d1 = LDRDui $sp, 20 :: (load 8 from %stack.5)
    STRDui killed renamable $d1, killed renamable $x10, 1 :: (store 8 into %ir.20 + 8)
    $x11 = LDRXui $sp, 18 :: (load 8 from %stack.7)
    STRXui killed renamable $x11, $sp, 23 :: (store 8 into %stack.1.self.addr)
    $x12 = LDRXui $sp, 21 :: (load 8 from %stack.4)
    STRXui killed renamable $x12, $sp, 22 :: (store 8 into %stack.2._cmd.addr)
    renamable $x9 = LDRXui killed renamable $x9, 0, debug-location !50 :: (load 8 from @"OBJC_CLASSLIST_REFERENCES_$_")
    $x13 = LDRXui $sp, 13 :: (load 8 from %stack.12)
    renamable $w14 = LDRBBroX killed renamable $x8, killed renamable $x13, 0, 0, debug-location !50 :: (load 1 from %ir.31)
    renamable $w14 = UBFMWri killed renamable $w14, 0, 7, debug-location !50
    STRXui killed $x9, $sp, 10 :: (store 8 into %stack.15)
    CBZW killed renamable $w14, %bb.4, debug-location !50
  
  bb.3 (%ir-block.34):
    successors: 
  
    $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_, debug-location !50
    renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0, debug-location !50
    BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !50
    INLINEASM &"", 1, debug-location !50
    BRK 1, debug-location !50
  
  bb.4 (%ir-block.35):
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_, 0
    renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !50 :: (invariant load 8 from @OBJC_SELECTOR_REFERENCES_)
    $x8 = LDRXui $sp, 10 :: (load 8 from %stack.15)
    $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !50
    BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit-def $x0, debug-location !50
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0
    renamable $x1 = ORRXri $xzr, 4097
    renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x1
    $x1 = LDRXui $sp, 13 :: (load 8 from %stack.12)
    renamable $w9 = LDRBBroX killed renamable $x8, killed renamable $x1, 0, 0, debug-location !51 :: (load 1 from %ir.40)
    renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !51
    STRXui killed $x0, $sp, 9 :: (store 8 into %stack.16)
    CBZW killed renamable $w9, %bb.6, debug-location !51
  
  bb.5 (%ir-block.43):
    successors: 
  
    $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2, debug-location !51
    renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0, debug-location !51
    BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !51
    INLINEASM &"", 1, debug-location !51
    BRK 1, debug-location !51
  
  bb.6 (%ir-block.44):
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.2
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.2, 0
    renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !51 :: (invariant load 8 from @OBJC_SELECTOR_REFERENCES_.2)
    $x8 = LDRXui $sp, 9 :: (load 8 from %stack.16)
    $x9 = LDRXui $sp, 17 :: (load 8 from %stack.8)
    renamable $x10 = UBFMXri renamable $x9, 3, 63, debug-location !51
    $x11 = LDRXui $sp, 13 :: (load 8 from %stack.12)
    renamable $w12 = LDRHHroX killed renamable $x10, killed renamable $x11, 0, 0, debug-location !51 :: (load 2 from %ir.51)
    renamable $w12 = UBFMWri killed renamable $w12, 0, 15, debug-location !51
    STRXui killed $x1, $sp, 8 :: (store 8 into %stack.17)
    STRXui killed $x8, $sp, 7 :: (store 8 into %stack.18)
    STRXui killed $x9, $sp, 6 :: (store 8 into %stack.19)
    CBZW killed renamable $w12, %bb.8, debug-location !51
  
  bb.7 (%ir-block.54):
    successors: 
  
    $x0 = LDRXui $sp, 6 :: (load 8 from %stack.19)
    BL @__asan_report_load16, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !51
    INLINEASM &"", 1, debug-location !51
    BRK 1, debug-location !51
  
  bb.8 (%ir-block.55):
    $x8 = LDRXui $sp, 6 :: (load 8 from %stack.19)
    renamable $d1 = LDRDui renamable $x8, 1, debug-location !51 :: (load 8 from %ir.47 + 8)
    renamable $d0 = LDRDui killed renamable $x8, 0, debug-location !51 :: (load 8 from %ir.47)
    $x0 = LDRXui $sp, 7 :: (load 8 from %stack.18)
    $x1 = LDRXui $sp, 8 :: (load 8 from %stack.17)
    BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit killed $d0, implicit killed $d1, implicit-def $sp, implicit-def $x0, debug-location !51
    $x8 = LDRXui $sp, 16 :: (load 8 from %stack.9)
    renamable $x1 = UBFMXri killed renamable $x8, 3, 63, debug-location !44
    $lr = LDRXui $sp, 13 :: (load 8 from %stack.12)
    renamable $w9 = LDRBBroX killed renamable $x1, killed renamable $lr, 0, 0, debug-location !44 :: (load 1 from %ir.61)
    renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !44
    STRXui killed $x0, $sp, 5 :: (store 8 into %stack.20)
    CBZW killed renamable $w9, %bb.10, debug-location !44
  
  bb.9 (%ir-block.64):
    successors: 
  
    $x0 = LDRXui $sp, 16 :: (load 8 from %stack.9)
    BL @__asan_report_store8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !44
    INLINEASM &"", 1, debug-location !44
    BRK 1, debug-location !44
  
  bb.10 (%ir-block.65):
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0
    renamable $x9 = ORRXri $xzr, 4097
    renamable $x8 = LSRVXr killed renamable $x8, killed renamable $x9
    $x9 = LDRXui $sp, 5 :: (load 8 from %stack.20)
    $x10 = LDRXui $sp, 16 :: (load 8 from %stack.9)
    STRXui killed renamable $x9, renamable $x10, 0, debug-location !44 :: (store 8 into %ir.6)
    renamable $x11 = LDRXui killed renamable $x10, 0, debug-location !52 :: (load 8 from %ir.6)
    $x12 = LDRXui $sp, 13 :: (load 8 from %stack.12)
    renamable $w13 = LDRBBroX killed renamable $x8, killed renamable $x12, 0, 0, debug-location !53 :: (load 1 from %ir.68)
    renamable $w13 = UBFMWri killed renamable $w13, 0, 7, debug-location !53
    STRXui killed $x11, $sp, 4 :: (store 8 into %stack.21)
    CBZW killed renamable $w13, %bb.12, debug-location !53
  
  bb.11 (%ir-block.71):
    successors: 
  
    $x0 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4, debug-location !53
    renamable $x0 = ADDXri $x0, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0, debug-location !53
    BL @__asan_report_load8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $sp, debug-location !53
    INLINEASM &"", 1, debug-location !53
    BRK 1, debug-location !53
  
  bb.12 (%ir-block.72):
    renamable $x8 = ADRP target-flags(aarch64-page) @OBJC_SELECTOR_REFERENCES_.4
    renamable $x8 = ADDXri killed renamable $x8, target-flags(aarch64-pageoff, aarch64-nc) @OBJC_SELECTOR_REFERENCES_.4, 0
    renamable $x1 = LDRXui killed renamable $x8, 0, debug-location !53 :: (invariant load 8 from @OBJC_SELECTOR_REFERENCES_.4)
    $x8 = LDRXui $sp, 4 :: (load 8 from %stack.21)
    $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !53
    BL @objc_msgSend, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, implicit-def $x0, debug-location !53
    INLINEASM &"mov\09fp, fp\09\09; marker for objc_retainAutoreleaseReturnValue", 1, debug-location !53
    BL @objc_retainAutoreleasedReturnValue, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $x0, debug-location !53
    $x8 = LDRXui $sp, 16 :: (load 8 from %stack.9)
    STRXui killed $x0, $sp, 3 :: (store 8 into %stack.22)
    $x0 = ORRXrs $xzr, killed $x8, 0, debug-location !54
    $x8 = ORRXrs $xzr, killed $xzr, 0, debug-location !54
    $x1 = ORRXrs $xzr, killed $x8, 0, debug-location !54
    BL @objc_storeStrong, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit killed $x1, debug-location !54
    $x0 = LDRXui $sp, 3 :: (load 8 from %stack.22)
    BL @objc_autoreleaseReturnValue, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $x0, implicit-def $x0, debug-location !54
    $x8 = MOVZXi 13838, 0, debug-location !54
    $x8 = MOVKXi $x8, 17888, 16, debug-location !54
    $x1 = LDRXui $sp, 15 :: (load 8 from %stack.10)
    STRXui killed renamable $x8, killed renamable $x1, 0, debug-location !54 :: (store 8 into %ir.7)
    $x8 = LDRXui $sp, 12 :: (load 8 from %stack.13)
    STRXui $xzr, renamable $x8, 0, debug-location !54 :: (store 8 into %ir.79, align 1)
    STURHHi $wzr, renamable $x8, 9, debug-location !54 :: (store 2 into %ir.81, align 1)
    STRBBui $wzr, killed renamable $x8, 11, debug-location !54 :: (store 1 into %ir.83)
    $lr = ADRP target-flags(aarch64-page, aarch64-got) @__stack_chk_guard
    $lr = LDRXui $lr, target-flags(aarch64-pageoff, aarch64-got, aarch64-nc) @__stack_chk_guard
    $lr = LDRXui killed $lr, 0 :: (dereferenceable invariant load 8 from @__stack_chk_guard)
    renamable $x9 = LDRXui $sp, 39 :: (load 8 from %stack.0.StackGuardSlot)
    $xzr = SUBSXrs killed renamable $lr, killed renamable $x9, 0, implicit-def $nzcv, implicit-def $nzcv
    STRXui killed $x0, $sp, 2 :: (store 8 into %stack.23)
    Bcc 1, %bb.14, implicit $nzcv
  
  bb.13.SP_return:
    $x0 = LDRXui $sp, 2 :: (load 8 from %stack.23)
    $sp = frame-destroy SUBXri $fp, 16, 0, debug-location !54
    $fp, $lr = frame-destroy LDPXi $sp, 2, debug-location !54 :: (load 8 from %stack.25), (load 8 from %stack.24)
    early-clobber $sp, $x28, $x27 = frame-destroy LDPXpost $sp, 4, debug-location !54 :: (load 8 from %stack.27), (load 8 from %stack.26)
    RET undef $lr, implicit killed $x0, debug-location !54
  
  bb.14.CallStackCheckFailBlk:
    BL @__stack_chk_fail, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, debug-location !47
    BRK 1, debug-location !47

...
---
name:            asan.module_ctor
alignment:       4
tracksRegLiveness: true
frameInfo:       
  stackSize:       16
  maxAlignment:    8
  adjustsStack:    true
  hasCalls:        true
  maxCallFrameSize: 0
stack:           
  - { id: 0, type: spill-slot, offset: -8, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$lr' }
  - { id: 1, type: spill-slot, offset: -16, size: 8, alignment: 8, stack-id: default,
      callee-saved-register: '$fp' }
body:             |
  bb.0 (%ir-block.0):
    liveins: $lr
  
    early-clobber $sp = frame-setup STPXpre killed $fp, killed $lr, $sp, -2 :: (store 8 into %stack.1), (store 8 into %stack.0)
    frame-setup CFI_INSTRUCTION def_cfa_offset 16
    frame-setup CFI_INSTRUCTION offset $w30, -8
    frame-setup CFI_INSTRUCTION offset $w29, -16
    BL @__asan_init, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp
    BL @__asan_version_mismatch_check_v8, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp
    early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load 8 from %stack.1), (load 8 from %stack.0)
    RET undef $lr

...
