1; RUN: llc < %s -mtriple=aarch64 -mattr=+mte | FileCheck %s 2 3declare void @use32(ptr) 4 5define void @WithUnwind() sanitize_memtag { 6entry: 7; CHECK-LABEL: WithUnwind: 8; CHECK: .cfi_mte_tagged_frame 9; CHECK: stg 10 %x = alloca i32, align 4 11 call void @use32(ptr %x) 12 ret void 13} 14 15define void @NoUnwind() sanitize_memtag nounwind { 16entry: 17; CHECK-LABEL: NoUnwind: 18; CHECK-NOT: .cfi_mte_tagged_frame 19; CHECK: stg 20 %x = alloca i32, align 4 21 call void @use32(ptr %x) 22 ret void 23} 24 25define void @NoUnwindUwTable() sanitize_memtag nounwind uwtable { 26entry: 27; CHECK-LABEL: NoUnwindUwTable: 28; CHECK: .cfi_mte_tagged_frame 29; CHECK: stg 30 %x = alloca i32, align 4 31 call void @use32(ptr %x) 32 ret void 33} 34 35define void @NoMemtag() { 36entry: 37; CHECK-LABEL: NoMemtag: 38; CHECK-NOT: .cfi_mte_tagged_frame 39; CHECK-NOT: stg 40 %x = alloca i32, align 4 41 call void @use32(ptr %x) 42 ret void 43} 44