blob: 78037e0423a59f43d937ee300b01f5ffdb9ab1d8 [file] [log] [blame]
Jakob Stoklund Olesen4180d482010-07-10 16:30:25 +00001; RUN: llc < %s -march=x86 | FileCheck %s
Rafael Espindola84dcc012009-06-21 12:02:51 +00002; PR4185
3
Jakob Stoklund Olesen4180d482010-07-10 16:30:25 +00004; 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
Rafael Espindola84dcc012009-06-21 12:02:51 +000013define void @test() {
14return:
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
18}
Jakob Stoklund Olesen4180d482010-07-10 16:30:25 +000019
20; A valid alternative would be to remat the constant pool load before each
21; inline asm.