32 lines · plain
1; RUN: llc -verify-machineinstrs < %s | FileCheck %s2target 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 %flags15}16 17; CHECK-LABEL: _read_flags:18; CHECK: pushfl19; CHECK-NEXT: popl %eax20; CHECK-NEXT: retl21 22define x86_fastcallcc void @write_flags(i32 inreg %arg) {23entry:24 call void @llvm.x86.flags.write.u32(i32 %arg)25 ret void26}27 28; CHECK-LABEL: @write_flags@4:29; CHECK: pushl %ecx30; CHECK-NEXT: popfl31; CHECK-NEXT: retl32