; RUN: llc -O0 < %s -march=avr | FileCheck %s ; CHECK-LABEL: foo define void @foo() { entry: br label %save ; CHECK-LABEL: save ; CHECK: in [[SREG1:r[0-9]+]], 61 ; CHECK-NEXT: in [[SREG2:r[0-9]+]], 62 save: %saved = call i8* @llvm.stacksave() br label %restore ; CHECK-LABEL: restore ; CHECK: in r0, 63 ; CHECK-NEXT: cli ; CHECK-NEXT: out 62, [[SREG2]] ; CHECK-NEXT: out 63, r0 ; CHECK-NEXT: out 61, [[SREG1]] restore: call void @llvm.stackrestore(i8* %saved) ret void } declare i8* @llvm.stacksave() declare void @llvm.stackrestore(i8* %ptr)