• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=X87
2; RUN: llc < %s -march=x86-64 -mattr=-sse | FileCheck %s -check-prefix=X87
3; RUN: llc < %s -march=x86 -mattr=-x87 | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
4; RUN: llc < %s -march=x86-64 -mattr=-x87,-sse | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
5; RUN: llc < %s -march=x86 -mattr=-x87,+sse | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
6; RUN: llc < %s -march=x86-64 -mattr=-x87,-sse2 | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
7
8define void @test(i32 %i, i64 %l, float* %pf, double* %pd, fp128* %pld) nounwind readnone {
9; X87-LABEL: test:
10; NOX87-LABEL: test:
11; X87: fild
12; NOX87: __floatunsisf
13  %tmp = uitofp i32 %i to float
14
15; X87: fild
16; NOX87: __floatdisf
17  %tmp1 = sitofp i64 %l to float
18
19; X87: fadd
20; NOX87: __addsf3
21  %tmp2 = fadd float %tmp, %tmp1
22
23; X87: fstp
24  store float %tmp2, float* %pf
25
26; X87: fild
27; NOX87: __floatunsidf
28  %tmp3 = uitofp i32 %i to double
29
30; X87: fild
31; NOX87: __floatdidf
32  %tmp4 = sitofp i64 %l to double
33
34; X87: fadd
35; NOX87: __adddf3
36  %tmp5 = fadd double %tmp3, %tmp4
37
38; X87: fstp
39  store double %tmp5, double* %pd
40
41; X87: __floatsitf
42; NOX87: __floatsitf
43  %tmp6 = sitofp i32 %i to fp128
44
45; X87: __floatunditf
46; NOX87: __floatunditf
47  %tmp7 = uitofp i64 %l to fp128
48
49; X87: __addtf3
50; NOX87: __addtf3
51  %tmp8 = fadd fp128 %tmp6, %tmp7
52  store fp128 %tmp8, fp128* %pld
53
54  ret void
55}
56