1; RUN: llc -verify-machineinstrs < %s | FileCheck %s 2target triple = "i686-pc-win32" 3 4; Check that pushf/popf intrinsics on win32 don't need a frame pointer. 5; FIXME: These can't be autogenerated due to the fastcall function name label, 6; it seems. 7 8declare i32 @llvm.x86.flags.read.u32() 9declare void @llvm.x86.flags.write.u32(i32) 10 11define i32 @read_flags() { 12entry: 13 %flags = call i32 @llvm.x86.flags.read.u32() 14 ret i32 %flags 15} 16 17; CHECK-LABEL: _read_flags: 18; CHECK: pushfl 19; CHECK-NEXT: popl %eax 20; CHECK-NEXT: retl 21 22define x86_fastcallcc void @write_flags(i32 inreg %arg) { 23entry: 24 call void @llvm.x86.flags.write.u32(i32 %arg) 25 ret void 26} 27 28; CHECK-LABEL: @write_flags@4: 29; CHECK: pushl %ecx 30; CHECK-NEXT: popfl 31; CHECK-NEXT: retl 32