| ; RUN: llc -mattr=+sme -stop-after=finalize-isel < %s | FileCheck %s |
| |
| target triple = "aarch64" |
| |
| ; Check that we don't define VG for 'smstart za' and 'smstop za' |
| define void @smstart_za() "aarch64_new_za" nounwind { |
| ; CHECK-LABEL: name: smstart_za |
| ; CHECK-NOT: implicit-def {{[^,]*}}$vg |
| ret void |
| } |
| |
| ; Check that we do define VG for 'smstart sm' and 'smstop sm' |
| define void @smstart_sm() nounwind { |
| ; CHECK-LABEL: name: smstart_sm |
| ; CHECK: MSRpstatesvcrImm1 1, 1, |
| ; CHECK-SAME: implicit-def {{[^,]*}}$vg |
| ; CHECK: MSRpstatesvcrImm1 1, 0, |
| ; CHECK-SAME: implicit-def {{[^,]*}}$vg |
| call void @require_sm() |
| ret void |
| } |
| |
| declare void @require_sm() "aarch64_pstate_sm_enabled" |
| declare void @require_za() "aarch64_inout_za" |