126 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc -mtriple=arm64-apple-macosx10.13.0 -mcpu=apple-m1 < %s | FileCheck %s3 4@.str = external constant [9 x i8]5 6define void @_ZN38SanitizerCommonInterceptors_Scanf_Test8TestBodyEv(ptr %.str.40, ptr %.str.41, ptr %.str.42, ptr %.str.43, ptr %.str.44, ptr %.str.45, ptr nocapture writeonly %.str.47) nounwind {7; CHECK-LABEL: _ZN38SanitizerCommonInterceptors_Scanf_Test8TestBodyEv:8; CHECK: ; %bb.0: ; %entry9; CHECK-NEXT: sub sp, sp, #12810; CHECK-NEXT: stp x28, x27, [sp, #32] ; 16-byte Folded Spill11; CHECK-NEXT: stp x26, x25, [sp, #48] ; 16-byte Folded Spill12; CHECK-NEXT: stp x24, x23, [sp, #64] ; 16-byte Folded Spill13; CHECK-NEXT: stp x22, x21, [sp, #80] ; 16-byte Folded Spill14; CHECK-NEXT: stp x20, x19, [sp, #96] ; 16-byte Folded Spill15; CHECK-NEXT: stp x29, x30, [sp, #112] ; 16-byte Folded Spill16; CHECK-NEXT: mov x24, x617; CHECK-NEXT: mov x19, x518; CHECK-NEXT: mov x20, x419; CHECK-NEXT: mov x21, x320; CHECK-NEXT: mov x22, x221; CHECK-NEXT: mov x23, x122; CHECK-NEXT: mov x25, x023; CHECK-NEXT: str xzr, [sp]24; CHECK-NEXT: mov x0, #0 ; =0x025; CHECK-NEXT: mov w1, #1 ; =0x126; CHECK-NEXT: bl __ZL9testScanfPKcjz27; CHECK-NEXT: mov w28, #4 ; =0x428; CHECK-NEXT: stp x28, x28, [sp, #8]29; CHECK-NEXT: str x28, [sp]30; CHECK-NEXT: mov x0, #0 ; =0x031; CHECK-NEXT: mov w1, #0 ; =0x032; CHECK-NEXT: bl __ZL9testScanfPKcjz33; CHECK-NEXT: stp x28, xzr, [sp]34; CHECK-NEXT: mov x0, #0 ; =0x035; CHECK-NEXT: mov w1, #0 ; =0x036; CHECK-NEXT: bl __ZL9testScanfPKcjz37; CHECK-NEXT: mov w27, #8 ; =0x838; CHECK-NEXT: str x27, [sp]39; CHECK-NEXT: mov x0, #0 ; =0x040; CHECK-NEXT: mov w1, #0 ; =0x041; CHECK-NEXT: bl __ZL9testScanfPKcjz42; CHECK-NEXT: mov w26, #1 ; =0x143; CHECK-NEXT: stp xzr, x26, [sp]44; CHECK-NEXT: mov x0, #0 ; =0x045; CHECK-NEXT: mov w1, #0 ; =0x046; CHECK-NEXT: bl __ZL9testScanfPKcjz47; CHECK-NEXT: str x26, [sp]48; CHECK-NEXT: mov x0, #0 ; =0x049; CHECK-NEXT: mov w1, #0 ; =0x050; CHECK-NEXT: bl __ZL9testScanfPKcjz51; CHECK-NEXT: str x28, [sp]52; CHECK-NEXT: Lloh0:53; CHECK-NEXT: adrp x26, _.str@GOTPAGE54; CHECK-NEXT: Lloh1:55; CHECK-NEXT: ldr x26, [x26, _.str@GOTPAGEOFF]56; CHECK-NEXT: mov x0, x2657; CHECK-NEXT: mov w1, #0 ; =0x058; CHECK-NEXT: bl __ZL9testScanfPKcjz59; CHECK-NEXT: str wzr, [x24]60; CHECK-NEXT: str x27, [sp]61; CHECK-NEXT: mov x0, x2562; CHECK-NEXT: mov w1, #0 ; =0x063; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz64; CHECK-NEXT: str x28, [sp]65; CHECK-NEXT: mov x0, x2366; CHECK-NEXT: mov w1, #0 ; =0x067; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz68; CHECK-NEXT: str x28, [sp]69; CHECK-NEXT: mov x0, x2270; CHECK-NEXT: mov w1, #0 ; =0x071; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz72; CHECK-NEXT: str x28, [sp]73; CHECK-NEXT: mov x0, x2174; CHECK-NEXT: mov w1, #0 ; =0x075; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz76; CHECK-NEXT: str x28, [sp]77; CHECK-NEXT: mov x0, x2078; CHECK-NEXT: mov w1, #0 ; =0x079; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz80; CHECK-NEXT: str xzr, [sp]81; CHECK-NEXT: mov x0, x1982; CHECK-NEXT: mov w1, #0 ; =0x083; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz84; CHECK-NEXT: str xzr, [sp]85; CHECK-NEXT: mov x0, x2686; CHECK-NEXT: mov w1, #0 ; =0x087; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz88; CHECK-NEXT: mov w8, #1 ; =0x189; CHECK-NEXT: stp x8, xzr, [sp, #8]90; CHECK-NEXT: str xzr, [sp]91; CHECK-NEXT: mov x0, #0 ; =0x092; CHECK-NEXT: mov w1, #0 ; =0x093; CHECK-NEXT: bl __ZL20testScanfNoGnuMallocPKcjz94; CHECK-NEXT: ldp x29, x30, [sp, #112] ; 16-byte Folded Reload95; CHECK-NEXT: ldp x20, x19, [sp, #96] ; 16-byte Folded Reload96; CHECK-NEXT: ldp x22, x21, [sp, #80] ; 16-byte Folded Reload97; CHECK-NEXT: ldp x24, x23, [sp, #64] ; 16-byte Folded Reload98; CHECK-NEXT: ldp x26, x25, [sp, #48] ; 16-byte Folded Reload99; CHECK-NEXT: ldp x28, x27, [sp, #32] ; 16-byte Folded Reload100; CHECK-NEXT: add sp, sp, #128101; CHECK-NEXT: ret102; CHECK-NEXT: .loh AdrpLdrGot Lloh0, Lloh1103entry:104 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 1, i32 0)105 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 0, i32 4, i32 4, i32 4)106 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 0, i32 4, i32 0)107 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 0, i32 8)108 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 0, i32 0, i32 1)109 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr null, i32 0, i32 1)110 tail call void (ptr, i32, ...) @_ZL9testScanfPKcjz(ptr nonnull @.str, i32 0, i32 4)111 store i32 0, ptr %.str.47, align 4112 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.40, i32 0, i32 8)113 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.41, i32 0, i32 4)114 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.42, i32 0, i32 4)115 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.43, i32 0, i32 4)116 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.44, i32 0, i32 4)117 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr %.str.45, i32 0, i32 0)118 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr nonnull @.str, i32 0, i32 0)119 tail call void (ptr, i32, ...) @_ZL20testScanfNoGnuMallocPKcjz(ptr null, i32 0, i32 0, i32 1, i32 0)120 ret void121}122 123declare void @_ZL9testScanfPKcjz(ptr, i32, ...) local_unnamed_addr124 125declare void @_ZL20testScanfNoGnuMallocPKcjz(ptr, i32, ...) local_unnamed_addr126