| ; RUN: llc < %s -march=x86 | FileCheck %s | |
| ; PR4459 | |
| ; The return value from ceil must be duped before being consumed by asm. | |
| ; CHECK: ceil | |
| ; CHECK: fld %st(0) | |
| ; CHECK-NOT: fxch | |
| ; CHECK: fistpl | |
| ; CHECK-NOT: fxch | |
| ; CHECK: fstpt | |
| ; CHECK: test | |
| define void @test2(x86_fp80 %a) { | |
| entry: | |
| %0 = call x86_fp80 @ceil(x86_fp80 %a) | |
| call void asm sideeffect "fistpl $0", "{st}"( x86_fp80 %0) | |
| call void @test(x86_fp80 %0 ) | |
| ret void | |
| } | |
| declare x86_fp80 @ceil(x86_fp80) | |
| declare void @test(x86_fp80) |