2010-07-10 16:30:25 +00:00
|
|
|
; RUN: llc < %s -march=x86 | FileCheck %s
|
2009-06-30 12:18:16 +00:00
|
|
|
; PR4484
|
|
|
|
|
2010-07-10 16:30:25 +00:00
|
|
|
; ceil leaves a value on the stack that is needed after the asm.
|
|
|
|
; CHECK: ceil
|
|
|
|
; CHECK-NOT: fstp
|
|
|
|
; Load %a from stack after ceil
|
|
|
|
; CHECK: fldt
|
|
|
|
; CHECK-NOT: fxch
|
|
|
|
; CHECK: fistpl
|
|
|
|
; CHECK-NOT: fstp
|
|
|
|
; Set up call to test.
|
|
|
|
; CHECK: fstpt
|
|
|
|
; CHECK: test
|
2009-06-30 12:18:16 +00:00
|
|
|
define void @test2(x86_fp80 %a) {
|
|
|
|
entry:
|
|
|
|
%0 = call x86_fp80 @ceil()
|
|
|
|
call void asm sideeffect "fistpl $0", "{st},~{st}"(x86_fp80 %a)
|
|
|
|
call void @test(x86_fp80 %0)
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
2010-07-10 16:30:25 +00:00
|
|
|
declare x86_fp80 @ceil()
|
|
|
|
declare void @test(x86_fp80)
|