Fixed some bugs in register stack pass.
[llvm/zpu.git] / test / CodeGen / X86 / inline-asm-fpstack2.ll
blob78037e0423a59f43d937ee300b01f5ffdb9ab1d8
1 ; RUN: llc < %s -march=x86 | FileCheck %s
2 ; PR4185
4 ; Passing a non-killed value to asm in {st}.
5 ; Make sure it is duped before.
6 ; asm kills st(0), so we shouldn't pop anything
7 ; CHECK: fld %st(0)
8 ; CHECK: fistpl
9 ; CHECK-NOT: fstp
10 ; CHECK: fistpl
11 ; CHECK-NOT: fstp
12 ; CHECK: ret
13 define void @test() {
14 return:
15         call void asm sideeffect "fistpl $0", "{st}"(double 1.000000e+06)
16         call void asm sideeffect "fistpl $0", "{st}"(double 1.000000e+06)
17         ret void
20 ; A valid alternative would be to remat the constant pool load before each
21 ; inline asm.