; RUN: llc -stop-after=systemz-isel -mtriple=s390x-ibm-linux < %s -o - | FileCheck -check-prefix=CHECK-DAGCOMBINE %s ; RUN: llc -stop-after=finalize-isel -mtriple=s390x-ibm-linux < %s -o - | FileCheck -check-prefix=CHECK-CUSTOMINSERT %s ; CHECK-DAGCOMBINE: bb.0.entry: ; CHECK-DAGCOMBINE: MOV_STACKGUARD_DAG %stack.0.StackGuardSlot, 0 ; CHECK-DAGCOMBINE: CMP_STACKGUARD_DAG %stack.0.StackGuardSlot, 0, implicit-def $cc ; CHECK-CUSTOMINSERT: bb.0.entry ; CHECK-CUSTOMINSERT: early-clobber %6:addr64bit = MOV_STACKGUARD %stack.0.StackGuardSlot, 0 ; CHECK_CUSTOMINSERT: bb.3.entry ; CHECK-CUSTOMINSERT: early-clobber %10:addr64bit = CMP_STACKGUARD %stack.0.StackGuardSlot, 0, implicit-def $cc define dso_local signext i32 @stack_guard_pseudo_check(i32 %argc, ptr %argv) #0 { entry: %Buffer = alloca [8 x i8], align 1 call void @llvm.memset.p0.i64(ptr align 1 %Buffer, i8 0, i64 8, i1 false) %arraydecay = getelementptr inbounds [8 x i8], ptr %Buffer, i64 0, i64 0 %call = call ptr @strcpy(ptr noundef %arraydecay, ptr noundef %argv) ret i32 0 } declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) declare ptr @strcpy(ptr noundef, ptr noundef) attributes #0 = { ssp }