brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.0 KiB · c420267 Raw
569 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s3 4define void @bzero_4_heap(ptr nocapture %c) {5; CHECK-LABEL: bzero_4_heap:6; CHECK:       // %bb.0:7; CHECK-NEXT:    str wzr, [x0]8; CHECK-NEXT:    ret9  call void @llvm.memset.p0.i64(ptr align 4 %c, i8 0, i64 4, i1 false)10  ret void11}12 13define void @bzero_8_heap(ptr nocapture %c) {14; CHECK-LABEL: bzero_8_heap:15; CHECK:       // %bb.0:16; CHECK-NEXT:    str xzr, [x0]17; CHECK-NEXT:    ret18  call void @llvm.memset.p0.i64(ptr align 8 %c, i8 0, i64 8, i1 false)19  ret void20}21 22define void @bzero_12_heap(ptr nocapture %c) {23; CHECK-LABEL: bzero_12_heap:24; CHECK:       // %bb.0:25; CHECK-NEXT:    str wzr, [x0, #8]26; CHECK-NEXT:    str xzr, [x0]27; CHECK-NEXT:    ret28  call void @llvm.memset.p0.i64(ptr align 8 %c, i8 0, i64 12, i1 false)29  ret void30}31 32define void @bzero_16_heap(ptr nocapture %c) {33; CHECK-LABEL: bzero_16_heap:34; CHECK:       // %bb.0:35; CHECK-NEXT:    stp xzr, xzr, [x0]36; CHECK-NEXT:    ret37  call void @llvm.memset.p0.i64(ptr align 8 %c, i8 0, i64 16, i1 false)38  ret void39}40 41define void @bzero_32_heap(ptr nocapture %c) {42; CHECK-LABEL: bzero_32_heap:43; CHECK:       // %bb.0:44; CHECK-NEXT:    movi v0.2d, #000000000000000045; CHECK-NEXT:    stp q0, q0, [x0]46; CHECK-NEXT:    ret47  call void @llvm.memset.p0.i64(ptr align 8 %c, i8 0, i64 32, i1 false)48  ret void49}50 51define void @bzero_64_heap(ptr nocapture %c) {52; CHECK-LABEL: bzero_64_heap:53; CHECK:       // %bb.0:54; CHECK-NEXT:    movi v0.2d, #000000000000000055; CHECK-NEXT:    stp q0, q0, [x0]56; CHECK-NEXT:    stp q0, q0, [x0, #32]57; CHECK-NEXT:    ret58  call void @llvm.memset.p0.i64(ptr align 8 %c, i8 0, i64 64, i1 false)59  ret void60}61 62define void @bzero_4_stack() {63; CHECK-LABEL: bzero_4_stack:64; CHECK:       // %bb.0:65; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill66; CHECK-NEXT:    .cfi_def_cfa_offset 1667; CHECK-NEXT:    .cfi_offset w30, -1668; CHECK-NEXT:    add x0, sp, #1269; CHECK-NEXT:    str wzr, [sp, #12]70; CHECK-NEXT:    bl something71; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload72; CHECK-NEXT:    ret73  %buf = alloca [4 x i8], align 174  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 4, i1 false)75  call void @something(ptr %buf)76  ret void77}78 79define void @bzero_8_stack() {80; CHECK-LABEL: bzero_8_stack:81; CHECK:       // %bb.0:82; CHECK-NEXT:    stp x30, xzr, [sp, #-16]! // 8-byte Folded Spill83; CHECK-NEXT:    .cfi_def_cfa_offset 1684; CHECK-NEXT:    .cfi_offset w30, -1685; CHECK-NEXT:    add x0, sp, #886; CHECK-NEXT:    bl something87; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload88; CHECK-NEXT:    ret89  %buf = alloca [8 x i8], align 190  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 8, i1 false)91  call void @something(ptr %buf)92  ret void93}94 95define void @bzero_12_stack() {96; CHECK-LABEL: bzero_12_stack:97; CHECK:       // %bb.0:98; CHECK-NEXT:    sub sp, sp, #3299; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill100; CHECK-NEXT:    .cfi_def_cfa_offset 32101; CHECK-NEXT:    .cfi_offset w30, -16102; CHECK-NEXT:    mov x0, sp103; CHECK-NEXT:    str wzr, [sp, #8]104; CHECK-NEXT:    str xzr, [sp]105; CHECK-NEXT:    bl something106; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload107; CHECK-NEXT:    add sp, sp, #32108; CHECK-NEXT:    ret109  %buf = alloca [12 x i8], align 1110  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 12, i1 false)111  call void @something(ptr %buf)112  ret void113}114 115define void @bzero_16_stack() {116; CHECK-LABEL: bzero_16_stack:117; CHECK:       // %bb.0:118; CHECK-NEXT:    sub sp, sp, #32119; CHECK-NEXT:    stp xzr, x30, [sp, #8] // 8-byte Folded Spill120; CHECK-NEXT:    .cfi_def_cfa_offset 32121; CHECK-NEXT:    .cfi_offset w30, -16122; CHECK-NEXT:    mov x0, sp123; CHECK-NEXT:    str xzr, [sp]124; CHECK-NEXT:    bl something125; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload126; CHECK-NEXT:    add sp, sp, #32127; CHECK-NEXT:    ret128  %buf = alloca [16 x i8], align 1129  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 16, i1 false)130  call void @something(ptr %buf)131  ret void132}133 134define void @bzero_20_stack() {135; CHECK-LABEL: bzero_20_stack:136; CHECK:       // %bb.0:137; CHECK-NEXT:    sub sp, sp, #48138; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill139; CHECK-NEXT:    .cfi_def_cfa_offset 48140; CHECK-NEXT:    .cfi_offset w30, -16141; CHECK-NEXT:    add x0, sp, #8142; CHECK-NEXT:    stp xzr, xzr, [sp, #8]143; CHECK-NEXT:    str wzr, [sp, #24]144; CHECK-NEXT:    bl something145; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload146; CHECK-NEXT:    add sp, sp, #48147; CHECK-NEXT:    ret148  %buf = alloca [20 x i8], align 1149  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 20, i1 false)150  call void @something(ptr %buf)151  ret void152}153 154define void @bzero_26_stack() {155; CHECK-LABEL: bzero_26_stack:156; CHECK:       // %bb.0:157; CHECK-NEXT:    sub sp, sp, #48158; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill159; CHECK-NEXT:    .cfi_def_cfa_offset 48160; CHECK-NEXT:    .cfi_offset w30, -16161; CHECK-NEXT:    mov x0, sp162; CHECK-NEXT:    stp xzr, xzr, [sp]163; CHECK-NEXT:    strh wzr, [sp, #24]164; CHECK-NEXT:    str xzr, [sp, #16]165; CHECK-NEXT:    bl something166; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload167; CHECK-NEXT:    add sp, sp, #48168; CHECK-NEXT:    ret169  %buf = alloca [26 x i8], align 1170  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 26, i1 false)171  call void @something(ptr %buf)172  ret void173}174 175define void @bzero_32_stack() {176; CHECK-LABEL: bzero_32_stack:177; CHECK:       // %bb.0:178; CHECK-NEXT:    sub sp, sp, #48179; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill180; CHECK-NEXT:    .cfi_def_cfa_offset 48181; CHECK-NEXT:    .cfi_offset w30, -16182; CHECK-NEXT:    movi v0.2d, #0000000000000000183; CHECK-NEXT:    mov x0, sp184; CHECK-NEXT:    stp q0, q0, [sp]185; CHECK-NEXT:    bl something186; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload187; CHECK-NEXT:    add sp, sp, #48188; CHECK-NEXT:    ret189  %buf = alloca [32 x i8], align 1190  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 32, i1 false)191  call void @something(ptr %buf)192  ret void193}194 195define void @bzero_40_stack() {196; CHECK-LABEL: bzero_40_stack:197; CHECK:       // %bb.0:198; CHECK-NEXT:    sub sp, sp, #64199; CHECK-NEXT:    str x30, [sp, #48] // 8-byte Spill200; CHECK-NEXT:    .cfi_def_cfa_offset 64201; CHECK-NEXT:    .cfi_offset w30, -16202; CHECK-NEXT:    movi v0.2d, #0000000000000000203; CHECK-NEXT:    mov x0, sp204; CHECK-NEXT:    str xzr, [sp, #32]205; CHECK-NEXT:    stp q0, q0, [sp]206; CHECK-NEXT:    bl something207; CHECK-NEXT:    ldr x30, [sp, #48] // 8-byte Reload208; CHECK-NEXT:    add sp, sp, #64209; CHECK-NEXT:    ret210  %buf = alloca [40 x i8], align 1211  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 40, i1 false)212  call void @something(ptr %buf)213  ret void214}215 216define void @bzero_64_stack() {217; CHECK-LABEL: bzero_64_stack:218; CHECK:       // %bb.0:219; CHECK-NEXT:    sub sp, sp, #80220; CHECK-NEXT:    str x30, [sp, #64] // 8-byte Spill221; CHECK-NEXT:    .cfi_def_cfa_offset 80222; CHECK-NEXT:    .cfi_offset w30, -16223; CHECK-NEXT:    movi v0.2d, #0000000000000000224; CHECK-NEXT:    mov x0, sp225; CHECK-NEXT:    stp q0, q0, [sp]226; CHECK-NEXT:    stp q0, q0, [sp, #32]227; CHECK-NEXT:    bl something228; CHECK-NEXT:    ldr x30, [sp, #64] // 8-byte Reload229; CHECK-NEXT:    add sp, sp, #80230; CHECK-NEXT:    ret231  %buf = alloca [64 x i8], align 1232  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 64, i1 false)233  call void @something(ptr %buf)234  ret void235}236 237define void @bzero_72_stack() {238; CHECK-LABEL: bzero_72_stack:239; CHECK:       // %bb.0:240; CHECK-NEXT:    sub sp, sp, #96241; CHECK-NEXT:    str x30, [sp, #80] // 8-byte Spill242; CHECK-NEXT:    .cfi_def_cfa_offset 96243; CHECK-NEXT:    .cfi_offset w30, -16244; CHECK-NEXT:    movi v0.2d, #0000000000000000245; CHECK-NEXT:    mov x0, sp246; CHECK-NEXT:    str xzr, [sp, #64]247; CHECK-NEXT:    stp q0, q0, [sp]248; CHECK-NEXT:    stp q0, q0, [sp, #32]249; CHECK-NEXT:    bl something250; CHECK-NEXT:    ldr x30, [sp, #80] // 8-byte Reload251; CHECK-NEXT:    add sp, sp, #96252; CHECK-NEXT:    ret253  %buf = alloca [72 x i8], align 1254  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 72, i1 false)255  call void @something(ptr %buf)256  ret void257}258 259define void @bzero_128_stack() {260; CHECK-LABEL: bzero_128_stack:261; CHECK:       // %bb.0:262; CHECK-NEXT:    sub sp, sp, #144263; CHECK-NEXT:    str x30, [sp, #128] // 8-byte Spill264; CHECK-NEXT:    .cfi_def_cfa_offset 144265; CHECK-NEXT:    .cfi_offset w30, -16266; CHECK-NEXT:    movi v0.2d, #0000000000000000267; CHECK-NEXT:    mov x0, sp268; CHECK-NEXT:    stp q0, q0, [sp]269; CHECK-NEXT:    stp q0, q0, [sp, #32]270; CHECK-NEXT:    stp q0, q0, [sp, #64]271; CHECK-NEXT:    stp q0, q0, [sp, #96]272; CHECK-NEXT:    bl something273; CHECK-NEXT:    ldr x30, [sp, #128] // 8-byte Reload274; CHECK-NEXT:    add sp, sp, #144275; CHECK-NEXT:    ret276  %buf = alloca [128 x i8], align 1277  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 128, i1 false)278  call void @something(ptr %buf)279  ret void280}281 282define void @bzero_256_stack() {283; CHECK-LABEL: bzero_256_stack:284; CHECK:       // %bb.0:285; CHECK-NEXT:    sub sp, sp, #272286; CHECK-NEXT:    stp x29, x30, [sp, #256] // 16-byte Folded Spill287; CHECK-NEXT:    .cfi_def_cfa_offset 272288; CHECK-NEXT:    .cfi_offset w30, -8289; CHECK-NEXT:    .cfi_offset w29, -16290; CHECK-NEXT:    movi v0.2d, #0000000000000000291; CHECK-NEXT:    mov x0, sp292; CHECK-NEXT:    stp q0, q0, [sp]293; CHECK-NEXT:    stp q0, q0, [sp, #32]294; CHECK-NEXT:    stp q0, q0, [sp, #64]295; CHECK-NEXT:    stp q0, q0, [sp, #96]296; CHECK-NEXT:    stp q0, q0, [sp, #128]297; CHECK-NEXT:    stp q0, q0, [sp, #160]298; CHECK-NEXT:    stp q0, q0, [sp, #192]299; CHECK-NEXT:    stp q0, q0, [sp, #224]300; CHECK-NEXT:    bl something301; CHECK-NEXT:    ldp x29, x30, [sp, #256] // 16-byte Folded Reload302; CHECK-NEXT:    add sp, sp, #272303; CHECK-NEXT:    ret304  %buf = alloca [256 x i8], align 1305  call void @llvm.memset.p0.i32(ptr %buf, i8 0, i32 256, i1 false)306  call void @something(ptr %buf)307  ret void308}309 310define void @memset_4_stack() {311; CHECK-LABEL: memset_4_stack:312; CHECK:       // %bb.0:313; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill314; CHECK-NEXT:    .cfi_def_cfa_offset 16315; CHECK-NEXT:    .cfi_offset w30, -16316; CHECK-NEXT:    mov w8, #-1431655766317; CHECK-NEXT:    add x0, sp, #12318; CHECK-NEXT:    str w8, [sp, #12]319; CHECK-NEXT:    bl something320; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload321; CHECK-NEXT:    ret322  %buf = alloca [4 x i8], align 1323  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 4, i1 false)324  call void @something(ptr %buf)325  ret void326}327 328define void @memset_8_stack() {329; CHECK-LABEL: memset_8_stack:330; CHECK:       // %bb.0:331; CHECK-NEXT:    .cfi_def_cfa_offset 16332; CHECK-NEXT:    .cfi_offset w30, -16333; CHECK-NEXT:    mov x8, #-6148914691236517206334; CHECK-NEXT:    stp x30, x8, [sp, #-16]! // 8-byte Folded Spill335; CHECK-NEXT:    add x0, sp, #8336; CHECK-NEXT:    bl something337; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload338; CHECK-NEXT:    ret339  %buf = alloca [8 x i8], align 1340  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 8, i1 false)341  call void @something(ptr %buf)342  ret void343}344 345define void @memset_12_stack() {346; CHECK-LABEL: memset_12_stack:347; CHECK:       // %bb.0:348; CHECK-NEXT:    sub sp, sp, #32349; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Spill350; CHECK-NEXT:    .cfi_def_cfa_offset 32351; CHECK-NEXT:    .cfi_offset w30, -16352; CHECK-NEXT:    mov x8, #-6148914691236517206353; CHECK-NEXT:    mov x0, sp354; CHECK-NEXT:    str x8, [sp]355; CHECK-NEXT:    str w8, [sp, #8]356; CHECK-NEXT:    bl something357; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload358; CHECK-NEXT:    add sp, sp, #32359; CHECK-NEXT:    ret360  %buf = alloca [12 x i8], align 1361  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 12, i1 false)362  call void @something(ptr %buf)363  ret void364}365 366define void @memset_16_stack() {367; CHECK-LABEL: memset_16_stack:368; CHECK:       // %bb.0:369; CHECK-NEXT:    sub sp, sp, #32370; CHECK-NEXT:    .cfi_def_cfa_offset 32371; CHECK-NEXT:    .cfi_offset w30, -16372; CHECK-NEXT:    mov x8, #-6148914691236517206373; CHECK-NEXT:    mov x0, sp374; CHECK-NEXT:    stp x8, x30, [sp, #8] // 8-byte Folded Spill375; CHECK-NEXT:    str x8, [sp]376; CHECK-NEXT:    bl something377; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload378; CHECK-NEXT:    add sp, sp, #32379; CHECK-NEXT:    ret380  %buf = alloca [16 x i8], align 1381  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 16, i1 false)382  call void @something(ptr %buf)383  ret void384}385 386define void @memset_20_stack() {387; CHECK-LABEL: memset_20_stack:388; CHECK:       // %bb.0:389; CHECK-NEXT:    sub sp, sp, #48390; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill391; CHECK-NEXT:    .cfi_def_cfa_offset 48392; CHECK-NEXT:    .cfi_offset w30, -16393; CHECK-NEXT:    mov x8, #-6148914691236517206394; CHECK-NEXT:    add x0, sp, #8395; CHECK-NEXT:    stp x8, x8, [sp, #8]396; CHECK-NEXT:    str w8, [sp, #24]397; CHECK-NEXT:    bl something398; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload399; CHECK-NEXT:    add sp, sp, #48400; CHECK-NEXT:    ret401  %buf = alloca [20 x i8], align 1402  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 20, i1 false)403  call void @something(ptr %buf)404  ret void405}406 407define void @memset_26_stack() {408; CHECK-LABEL: memset_26_stack:409; CHECK:       // %bb.0:410; CHECK-NEXT:    sub sp, sp, #48411; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill412; CHECK-NEXT:    .cfi_def_cfa_offset 48413; CHECK-NEXT:    .cfi_offset w30, -16414; CHECK-NEXT:    mov x8, #-6148914691236517206415; CHECK-NEXT:    mov x0, sp416; CHECK-NEXT:    stp x8, x8, [sp, #8]417; CHECK-NEXT:    str x8, [sp]418; CHECK-NEXT:    strh w8, [sp, #24]419; CHECK-NEXT:    bl something420; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload421; CHECK-NEXT:    add sp, sp, #48422; CHECK-NEXT:    ret423  %buf = alloca [26 x i8], align 1424  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 26, i1 false)425  call void @something(ptr %buf)426  ret void427}428 429define void @memset_32_stack() {430; CHECK-LABEL: memset_32_stack:431; CHECK:       // %bb.0:432; CHECK-NEXT:    sub sp, sp, #48433; CHECK-NEXT:    str x30, [sp, #32] // 8-byte Spill434; CHECK-NEXT:    .cfi_def_cfa_offset 48435; CHECK-NEXT:    .cfi_offset w30, -16436; CHECK-NEXT:    movi v0.16b, #170437; CHECK-NEXT:    mov x0, sp438; CHECK-NEXT:    stp q0, q0, [sp]439; CHECK-NEXT:    bl something440; CHECK-NEXT:    ldr x30, [sp, #32] // 8-byte Reload441; CHECK-NEXT:    add sp, sp, #48442; CHECK-NEXT:    ret443  %buf = alloca [32 x i8], align 1444  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 32, i1 false)445  call void @something(ptr %buf)446  ret void447}448 449define void @memset_40_stack() {450; CHECK-LABEL: memset_40_stack:451; CHECK:       // %bb.0:452; CHECK-NEXT:    sub sp, sp, #64453; CHECK-NEXT:    str x30, [sp, #48] // 8-byte Spill454; CHECK-NEXT:    .cfi_def_cfa_offset 64455; CHECK-NEXT:    .cfi_offset w30, -16456; CHECK-NEXT:    movi v0.16b, #170457; CHECK-NEXT:    mov x8, #-6148914691236517206458; CHECK-NEXT:    mov x0, sp459; CHECK-NEXT:    str x8, [sp, #32]460; CHECK-NEXT:    stp q0, q0, [sp]461; CHECK-NEXT:    bl something462; CHECK-NEXT:    ldr x30, [sp, #48] // 8-byte Reload463; CHECK-NEXT:    add sp, sp, #64464; CHECK-NEXT:    ret465  %buf = alloca [40 x i8], align 1466  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 40, i1 false)467  call void @something(ptr %buf)468  ret void469}470 471define void @memset_64_stack() {472; CHECK-LABEL: memset_64_stack:473; CHECK:       // %bb.0:474; CHECK-NEXT:    sub sp, sp, #80475; CHECK-NEXT:    str x30, [sp, #64] // 8-byte Spill476; CHECK-NEXT:    .cfi_def_cfa_offset 80477; CHECK-NEXT:    .cfi_offset w30, -16478; CHECK-NEXT:    movi v0.16b, #170479; CHECK-NEXT:    mov x0, sp480; CHECK-NEXT:    stp q0, q0, [sp]481; CHECK-NEXT:    stp q0, q0, [sp, #32]482; CHECK-NEXT:    bl something483; CHECK-NEXT:    ldr x30, [sp, #64] // 8-byte Reload484; CHECK-NEXT:    add sp, sp, #80485; CHECK-NEXT:    ret486  %buf = alloca [64 x i8], align 1487  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 64, i1 false)488  call void @something(ptr %buf)489  ret void490}491 492define void @memset_72_stack() {493; CHECK-LABEL: memset_72_stack:494; CHECK:       // %bb.0:495; CHECK-NEXT:    sub sp, sp, #96496; CHECK-NEXT:    str x30, [sp, #80] // 8-byte Spill497; CHECK-NEXT:    .cfi_def_cfa_offset 96498; CHECK-NEXT:    .cfi_offset w30, -16499; CHECK-NEXT:    movi v0.16b, #170500; CHECK-NEXT:    mov x8, #-6148914691236517206501; CHECK-NEXT:    mov x0, sp502; CHECK-NEXT:    str x8, [sp, #64]503; CHECK-NEXT:    stp q0, q0, [sp]504; CHECK-NEXT:    stp q0, q0, [sp, #32]505; CHECK-NEXT:    bl something506; CHECK-NEXT:    ldr x30, [sp, #80] // 8-byte Reload507; CHECK-NEXT:    add sp, sp, #96508; CHECK-NEXT:    ret509  %buf = alloca [72 x i8], align 1510  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 72, i1 false)511  call void @something(ptr %buf)512  ret void513}514 515define void @memset_128_stack() {516; CHECK-LABEL: memset_128_stack:517; CHECK:       // %bb.0:518; CHECK-NEXT:    sub sp, sp, #144519; CHECK-NEXT:    str x30, [sp, #128] // 8-byte Spill520; CHECK-NEXT:    .cfi_def_cfa_offset 144521; CHECK-NEXT:    .cfi_offset w30, -16522; CHECK-NEXT:    movi v0.16b, #170523; CHECK-NEXT:    mov x0, sp524; CHECK-NEXT:    stp q0, q0, [sp]525; CHECK-NEXT:    stp q0, q0, [sp, #32]526; CHECK-NEXT:    stp q0, q0, [sp, #64]527; CHECK-NEXT:    stp q0, q0, [sp, #96]528; CHECK-NEXT:    bl something529; CHECK-NEXT:    ldr x30, [sp, #128] // 8-byte Reload530; CHECK-NEXT:    add sp, sp, #144531; CHECK-NEXT:    ret532  %buf = alloca [128 x i8], align 1533  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 128, i1 false)534  call void @something(ptr %buf)535  ret void536}537 538define void @memset_256_stack() {539; CHECK-LABEL: memset_256_stack:540; CHECK:       // %bb.0:541; CHECK-NEXT:    sub sp, sp, #272542; CHECK-NEXT:    stp x29, x30, [sp, #256] // 16-byte Folded Spill543; CHECK-NEXT:    .cfi_def_cfa_offset 272544; CHECK-NEXT:    .cfi_offset w30, -8545; CHECK-NEXT:    .cfi_offset w29, -16546; CHECK-NEXT:    movi v0.16b, #170547; CHECK-NEXT:    mov x0, sp548; CHECK-NEXT:    stp q0, q0, [sp]549; CHECK-NEXT:    stp q0, q0, [sp, #32]550; CHECK-NEXT:    stp q0, q0, [sp, #64]551; CHECK-NEXT:    stp q0, q0, [sp, #96]552; CHECK-NEXT:    stp q0, q0, [sp, #128]553; CHECK-NEXT:    stp q0, q0, [sp, #160]554; CHECK-NEXT:    stp q0, q0, [sp, #192]555; CHECK-NEXT:    stp q0, q0, [sp, #224]556; CHECK-NEXT:    bl something557; CHECK-NEXT:    ldp x29, x30, [sp, #256] // 16-byte Folded Reload558; CHECK-NEXT:    add sp, sp, #272559; CHECK-NEXT:    ret560  %buf = alloca [256 x i8], align 1561  call void @llvm.memset.p0.i32(ptr %buf, i8 -86, i32 256, i1 false)562  call void @something(ptr %buf)563  ret void564}565 566declare void @something(ptr)567declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind568declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind569