brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.9 KiB · 36a300f Raw
162 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -o - %s | FileCheck %s3target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128-Fn32"4target triple = "arm64-apple-macosx14.0.0"5 6; Check we don't crash on Darwin and that we don't try to save VG7; when only SME (and not SVE) is enabled.8 9; Function Attrs: mustprogress norecurse nounwind ssp uwtable(sync)10define noundef i32 @main() local_unnamed_addr #0 {11; CHECK-LABEL: main:12; CHECK:       ; %bb.0: ; %entry13; CHECK-NEXT:    stp d15, d14, [sp, #-80]! ; 16-byte Folded Spill14; CHECK-NEXT:    .cfi_def_cfa_offset 8015; CHECK-NEXT:    stp d13, d12, [sp, #16] ; 16-byte Folded Spill16; CHECK-NEXT:    stp d11, d10, [sp, #32] ; 16-byte Folded Spill17; CHECK-NEXT:    stp d9, d8, [sp, #48] ; 16-byte Folded Spill18; CHECK-NEXT:    stp x29, x30, [sp, #64] ; 16-byte Folded Spill19; CHECK-NEXT:    .cfi_offset w30, -820; CHECK-NEXT:    .cfi_offset w29, -1621; CHECK-NEXT:    .cfi_offset b8, -2422; CHECK-NEXT:    .cfi_offset b9, -3223; CHECK-NEXT:    .cfi_offset b10, -4024; CHECK-NEXT:    .cfi_offset b11, -4825; CHECK-NEXT:    .cfi_offset b12, -5626; CHECK-NEXT:    .cfi_offset b13, -6427; CHECK-NEXT:    .cfi_offset b14, -7228; CHECK-NEXT:    .cfi_offset b15, -8029; CHECK-NEXT:    smstart sm30; CHECK-NEXT:    bl __ZL9sme_crashv31; CHECK-NEXT:    smstop sm32; CHECK-NEXT:    mov w0, #0 ; =0x033; CHECK-NEXT:    ldp x29, x30, [sp, #64] ; 16-byte Folded Reload34; CHECK-NEXT:    ldp d9, d8, [sp, #48] ; 16-byte Folded Reload35; CHECK-NEXT:    ldp d11, d10, [sp, #32] ; 16-byte Folded Reload36; CHECK-NEXT:    ldp d13, d12, [sp, #16] ; 16-byte Folded Reload37; CHECK-NEXT:    ldp d15, d14, [sp], #80 ; 16-byte Folded Reload38; CHECK-NEXT:    .cfi_def_cfa_offset 039; CHECK-NEXT:    .cfi_restore w3040; CHECK-NEXT:    .cfi_restore w2941; CHECK-NEXT:    .cfi_restore b842; CHECK-NEXT:    .cfi_restore b943; CHECK-NEXT:    .cfi_restore b1044; CHECK-NEXT:    .cfi_restore b1145; CHECK-NEXT:    .cfi_restore b1246; CHECK-NEXT:    .cfi_restore b1347; CHECK-NEXT:    .cfi_restore b1448; CHECK-NEXT:    .cfi_restore b1549; CHECK-NEXT:    ret50entry:51  tail call fastcc void @_ZL9sme_crashv() #452  ret i32 053}54 55; Function Attrs: mustprogress norecurse nounwind ssp uwtable(sync)56define internal fastcc void @_ZL9sme_crashv() unnamed_addr #1 {57; CHECK-LABEL: _ZL9sme_crashv:58; CHECK:       ; %bb.0: ; %entry59; CHECK-NEXT:    stp d15, d14, [sp, #-96]! ; 16-byte Folded Spill60; CHECK-NEXT:    .cfi_def_cfa_offset 9661; CHECK-NEXT:    stp d13, d12, [sp, #16] ; 16-byte Folded Spill62; CHECK-NEXT:    stp d11, d10, [sp, #32] ; 16-byte Folded Spill63; CHECK-NEXT:    stp d9, d8, [sp, #48] ; 16-byte Folded Spill64; CHECK-NEXT:    stp x28, x27, [sp, #64] ; 16-byte Folded Spill65; CHECK-NEXT:    stp x29, x30, [sp, #80] ; 16-byte Folded Spill66; CHECK-NEXT:    add x29, sp, #8067; CHECK-NEXT:    .cfi_def_cfa w29, 1668; CHECK-NEXT:    .cfi_offset w30, -869; CHECK-NEXT:    .cfi_offset w29, -1670; CHECK-NEXT:    .cfi_offset w27, -2471; CHECK-NEXT:    .cfi_offset w28, -3272; CHECK-NEXT:    .cfi_offset b8, -4073; CHECK-NEXT:    .cfi_offset b9, -4874; CHECK-NEXT:    .cfi_offset b10, -5675; CHECK-NEXT:    .cfi_offset b11, -6476; CHECK-NEXT:    .cfi_offset b12, -7277; CHECK-NEXT:    .cfi_offset b13, -8078; CHECK-NEXT:    .cfi_offset b14, -8879; CHECK-NEXT:    .cfi_offset b15, -9680; CHECK-NEXT:    .cfi_remember_state81; CHECK-NEXT:    sub x9, sp, #16082; CHECK-NEXT:    and sp, x9, #0xffffffffffffff0083; CHECK-NEXT:  Lloh0:84; CHECK-NEXT:    adrp x8, ___stack_chk_guard@GOTPAGE85; CHECK-NEXT:  Lloh1:86; CHECK-NEXT:    ldr x8, [x8, ___stack_chk_guard@GOTPAGEOFF]87; CHECK-NEXT:  Lloh2:88; CHECK-NEXT:    ldr x8, [x8]89; CHECK-NEXT:    str x8, [sp, #152]90; CHECK-NEXT:    mov z0.b, #0 ; =0x091; CHECK-NEXT:    stp q0, q0, [sp, #32]92; CHECK-NEXT:    stp q0, q0, [sp]93; CHECK-NEXT:    mov x8, sp94; CHECK-NEXT:    ; InlineAsm Start95; CHECK-NEXT:    ptrue p0.s96; CHECK-NEXT:    st1w { z0.s }, p0, [x8]97; CHECK-EMPTY:98; CHECK-NEXT:    ; InlineAsm End99; CHECK-NEXT:    ldr x8, [sp, #152]100; CHECK-NEXT:  Lloh3:101; CHECK-NEXT:    adrp x9, ___stack_chk_guard@GOTPAGE102; CHECK-NEXT:  Lloh4:103; CHECK-NEXT:    ldr x9, [x9, ___stack_chk_guard@GOTPAGEOFF]104; CHECK-NEXT:  Lloh5:105; CHECK-NEXT:    ldr x9, [x9]106; CHECK-NEXT:    cmp x9, x8107; CHECK-NEXT:    b.ne LBB1_2108; CHECK-NEXT:  ; %bb.1: ; %entry109; CHECK-NEXT:    sub sp, x29, #80110; CHECK-NEXT:    .cfi_def_cfa wsp, 96111; CHECK-NEXT:    ldp x29, x30, [sp, #80] ; 16-byte Folded Reload112; CHECK-NEXT:    ldp x28, x27, [sp, #64] ; 16-byte Folded Reload113; CHECK-NEXT:    ldp d9, d8, [sp, #48] ; 16-byte Folded Reload114; CHECK-NEXT:    ldp d11, d10, [sp, #32] ; 16-byte Folded Reload115; CHECK-NEXT:    ldp d13, d12, [sp, #16] ; 16-byte Folded Reload116; CHECK-NEXT:    ldp d15, d14, [sp], #96 ; 16-byte Folded Reload117; CHECK-NEXT:    .cfi_def_cfa_offset 0118; CHECK-NEXT:    .cfi_restore w30119; CHECK-NEXT:    .cfi_restore w29120; CHECK-NEXT:    .cfi_restore w27121; CHECK-NEXT:    .cfi_restore w28122; CHECK-NEXT:    .cfi_restore b8123; CHECK-NEXT:    .cfi_restore b9124; CHECK-NEXT:    .cfi_restore b10125; CHECK-NEXT:    .cfi_restore b11126; CHECK-NEXT:    .cfi_restore b12127; CHECK-NEXT:    .cfi_restore b13128; CHECK-NEXT:    .cfi_restore b14129; CHECK-NEXT:    .cfi_restore b15130; CHECK-NEXT:    ret131; CHECK-NEXT:  LBB1_2: ; %entry132; CHECK-NEXT:    .cfi_restore_state133; CHECK-NEXT:    smstop sm134; CHECK-NEXT:    bl ___stack_chk_fail135; CHECK-NEXT:    smstart sm136; CHECK-NEXT:    .loh AdrpLdrGotLdr Lloh3, Lloh4, Lloh5137; CHECK-NEXT:    .loh AdrpLdrGotLdr Lloh0, Lloh1, Lloh2138entry:139  %uu = alloca [16 x float], align 256140  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %uu) #5141  call void @llvm.memset.p0.i64(ptr noundef nonnull align 256 dereferenceable(64) %uu, i8 0, i64 64, i1 false)142  call void asm sideeffect "ptrue p0.s\0Ast1w { z0.s }, p0, [$0]\0A", "r"(ptr nonnull %uu) #5143  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %uu) #5144  ret void145}146 147; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)148declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2149 150; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)151declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3152 153; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)154declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2155 156attributes #0 = { mustprogress norecurse nounwind ssp uwtable(sync) "stack-protector-buffer-size"="8" "target-cpu"="apple-a16" "target-features"="+sme,+sme-f64f64,+sme2" }157attributes #1 = { mustprogress norecurse nounwind ssp uwtable(sync) "aarch64_pstate_sm_enabled" "stack-protector-buffer-size"="8" "target-cpu"="apple-a16" "target-features"="+sme,+sme-f64f64,+sme2" }158attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }159attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }160attributes #4 = { "aarch64_pstate_sm_enabled" "no-builtin-calloc" "no-builtin-stpcpy" }161attributes #5 = { nounwind }162