# 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 (s64) into %stack.27), (store (s64) into %stack.26)
    frame-setup STPXi killed $fp, killed $lr, $sp, 2 :: (store (s64) into %stack.25), (store (s64) 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 (s64) 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 (s64) from @__stack_chk_guard)
    STRXui killed renamable $x13, $sp, 39 :: (volatile store (s64) into %stack.0.StackGuardSlot)
    renamable $x11 = LDRXui killed renamable $x11, 0 :: (load (s64) 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 (s768) into %stack.3.MyAlloca, align 32)
    STRXui killed renamable $x9, $sp, 25, debug-location !35 :: (store (s768) into %stack.3.MyAlloca + 1, align 32)
    STRXui killed renamable $x8, $sp, 26, debug-location !35 :: (store (s768) 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 (s64) 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 (s16) 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 (s8) 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 (s16) from %ir.24)
    renamable $w16 = UBFMWri killed renamable $w16, 0, 15
    STRXui killed $x1, $sp, 21 :: (store (s64) into %stack.4)
    STRDui killed $d1, $sp, 20 :: (store (s64) into %stack.5)
    STRDui killed $d0, $sp, 19 :: (store (s64) into %stack.6)
    STRXui killed $x0, $sp, 18 :: (store (s64) into %stack.7)
    STRXui killed $x13, $sp, 17 :: (store (s64) 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 (s64) 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 (s64) into %stack.10)
    STRXui killed $x12, $sp, 14 :: (store (s64) into %stack.11)
    STRXui killed $x11, $sp, 13 :: (store (s64) into %stack.12)
    STRXui killed $x9, $sp, 12 :: (store (s64) into %stack.13)
    STRXui killed $x8, $sp, 11 :: (store (s64) into %stack.14)
    CBZW killed renamable $w16, %bb.2

  bb.1 (%ir-block.27):
    successors:

    $x0 = LDRXui $sp, 11 :: (load (s64) 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 (s64) from %stack.6)
    $x10 = LDRXui $sp, 11 :: (load (s64) from %stack.14)
    STRDui killed renamable $d0, renamable $x10, 0 :: (store (s64) into %ir.20)
    $d1 = LDRDui $sp, 20 :: (load (s64) from %stack.5)
    STRDui killed renamable $d1, killed renamable $x10, 1 :: (store (s64) into %ir.20 + 8)
    $x11 = LDRXui $sp, 18 :: (load (s64) from %stack.7)
    STRXui killed renamable $x11, $sp, 23 :: (store (s64) into %stack.1.self.addr)
    $x12 = LDRXui $sp, 21 :: (load (s64) from %stack.4)
    STRXui killed renamable $x12, $sp, 22 :: (store (s64) into %stack.2._cmd.addr)
    renamable $x9 = LDRXui killed renamable $x9, 0, debug-location !50 :: (load (s64) from @"OBJC_CLASSLIST_REFERENCES_$_")
    $x13 = LDRXui $sp, 13 :: (load (s64) from %stack.12)
    renamable $w14 = LDRBBroX killed renamable $x8, killed renamable $x13, 0, 0, debug-location !50 :: (load (s8) from %ir.31)
    renamable $w14 = UBFMWri killed renamable $w14, 0, 7, debug-location !50
    STRXui killed $x9, $sp, 10 :: (store (s64) 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 (s64) from @OBJC_SELECTOR_REFERENCES_)
    $x8 = LDRXui $sp, 10 :: (load (s64) 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 (s64) from %stack.12)
    renamable $w9 = LDRBBroX killed renamable $x8, killed renamable $x1, 0, 0, debug-location !51 :: (load (s8) from %ir.40)
    renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !51
    STRXui killed $x0, $sp, 9 :: (store (s64) 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 (s64) from @OBJC_SELECTOR_REFERENCES_.2)
    $x8 = LDRXui $sp, 9 :: (load (s64) from %stack.16)
    $x9 = LDRXui $sp, 17 :: (load (s64) from %stack.8)
    renamable $x10 = UBFMXri renamable $x9, 3, 63, debug-location !51
    $x11 = LDRXui $sp, 13 :: (load (s64) from %stack.12)
    renamable $w12 = LDRHHroX killed renamable $x10, killed renamable $x11, 0, 0, debug-location !51 :: (load (s16) from %ir.51)
    renamable $w12 = UBFMWri killed renamable $w12, 0, 15, debug-location !51
    STRXui killed $x1, $sp, 8 :: (store (s64) into %stack.17)
    STRXui killed $x8, $sp, 7 :: (store (s64) into %stack.18)
    STRXui killed $x9, $sp, 6 :: (store (s64) into %stack.19)
    CBZW killed renamable $w12, %bb.8, debug-location !51

  bb.7 (%ir-block.54):
    successors:

    $x0 = LDRXui $sp, 6 :: (load (s64) 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 (s64) from %stack.19)
    renamable $d1 = LDRDui renamable $x8, 1, debug-location !51 :: (load (s64) from %ir.47 + 8)
    renamable $d0 = LDRDui killed renamable $x8, 0, debug-location !51 :: (load (s64) from %ir.47)
    $x0 = LDRXui $sp, 7 :: (load (s64) from %stack.18)
    $x1 = LDRXui $sp, 8 :: (load (s64) 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 (s64) from %stack.9)
    renamable $x1 = UBFMXri killed renamable $x8, 3, 63, debug-location !44
    $lr = LDRXui $sp, 13 :: (load (s64) from %stack.12)
    renamable $w9 = LDRBBroX killed renamable $x1, killed renamable $lr, 0, 0, debug-location !44 :: (load (s8) from %ir.61)
    renamable $w9 = UBFMWri killed renamable $w9, 0, 7, debug-location !44
    STRXui killed $x0, $sp, 5 :: (store (s64) into %stack.20)
    CBZW killed renamable $w9, %bb.10, debug-location !44

  bb.9 (%ir-block.64):
    successors:

    $x0 = LDRXui $sp, 16 :: (load (s64) 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 (s64) from %stack.20)
    $x10 = LDRXui $sp, 16 :: (load (s64) from %stack.9)
    STRXui killed renamable $x9, renamable $x10, 0, debug-location !44 :: (store (s64) into %ir.6)
    renamable $x11 = LDRXui killed renamable $x10, 0, debug-location !52 :: (load (s64) from %ir.6)
    $x12 = LDRXui $sp, 13 :: (load (s64) from %stack.12)
    renamable $w13 = LDRBBroX killed renamable $x8, killed renamable $x12, 0, 0, debug-location !53 :: (load (s8) from %ir.68)
    renamable $w13 = UBFMWri killed renamable $w13, 0, 7, debug-location !53
    STRXui killed $x11, $sp, 4 :: (store (s64) 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 (s64) from @OBJC_SELECTOR_REFERENCES_.4)
    $x8 = LDRXui $sp, 4 :: (load (s64) 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 (s64) from %stack.9)
    STRXui killed $x0, $sp, 3 :: (store (s64) 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 (s64) 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 (s64) from %stack.10)
    STRXui killed renamable $x8, killed renamable $x1, 0, debug-location !54 :: (store (s64) into %ir.7)
    $x8 = LDRXui $sp, 12 :: (load (s64) from %stack.13)
    STRXui $xzr, renamable $x8, 0, debug-location !54 :: (store (s64) into %ir.79, align 1)
    STURHHi $wzr, renamable $x8, 9, debug-location !54 :: (store (s16) into %ir.81, align 1)
    STRBBui $wzr, killed renamable $x8, 11, debug-location !54 :: (store (s8) 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 (s64) from @__stack_chk_guard)
    renamable $x9 = LDRXui $sp, 39 :: (load (s64) 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 (s64) into %stack.23)
    Bcc 1, %bb.14, implicit $nzcv

  bb.13.SP_return:
    $x0 = LDRXui $sp, 2 :: (load (s64) from %stack.23)
    $sp = frame-destroy SUBXri $fp, 16, 0, debug-location !54
    $fp, $lr = frame-destroy LDPXi $sp, 2, debug-location !54 :: (load (s64) from %stack.25), (load (s64) from %stack.24)
    early-clobber $sp, $x28, $x27 = frame-destroy LDPXpost $sp, 4, debug-location !54 :: (load (s64) from %stack.27), (load (s64) 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 (s64) into %stack.1), (store (s64) 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 (s64) from %stack.1), (load (s64) from %stack.0)
    RET undef $lr

...
