xref: /llvm-project/llvm/test/CodeGen/AArch64/sme-write-vg.ll (revision e42e97a4ada141ca1320a49e7fe03245d6765bce)
1; RUN: llc -mattr=+sme -stop-after=finalize-isel < %s | FileCheck %s
2
3target triple = "aarch64"
4
5; Check that we don't define VG for 'smstart za' and 'smstop za'
6define void @smstart_za() "aarch64_new_za" nounwind {
7  ; CHECK-LABEL:    name: smstart_za
8  ; CHECK-NOT:        implicit-def {{[^,]*}}$vg
9  ret void
10}
11
12; Check that we do define VG for 'smstart sm' and 'smstop sm'
13define void @smstart_sm() nounwind {
14  ; CHECK-LABEL: name: smstart_sm
15  ; CHECK:          MSRpstatesvcrImm1 1, 1,
16  ; CHECK-SAME:       implicit-def {{[^,]*}}$vg
17  ; CHECK:          MSRpstatesvcrImm1 1, 0,
18  ; CHECK-SAME:       implicit-def {{[^,]*}}$vg
19  call void @require_sm()
20  ret void
21}
22
23declare void @require_sm() "aarch64_pstate_sm_enabled"
24declare void @require_za() "aarch64_inout_za"
25