summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorAndrey Turetskiy <andrey.turetskiy@gmail.com>2016-03-23 11:13:54 +0000
committerAndrey Turetskiy <andrey.turetskiy@gmail.com>2016-03-23 11:13:54 +0000
commit6a3d561ea036c91ba15fbb255cf6f979f58cdb8c (patch)
tree90ae517dad75745d06f0582ee949ecd068888be3 /llvm/test
parentc45baf212a0bb6742b75e4ed112a466d338ebb2d (diff)
downloadbcm5719-llvm-6a3d561ea036c91ba15fbb255cf6f979f58cdb8c.tar.gz
bcm5719-llvm-6a3d561ea036c91ba15fbb255cf6f979f58cdb8c.zip
[X86] Introduction of FeatureX87.
Add FeatureX87 in X86 backend to be able to define CPUs which doesn't have x87. Differential Revision: http://reviews.llvm.org/D13979 llvm-svn: 264148
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/x87.ll55
1 files changed, 55 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/x87.ll b/llvm/test/CodeGen/X86/x87.ll
new file mode 100644
index 00000000000..683d7b05cf8
--- /dev/null
+++ b/llvm/test/CodeGen/X86/x87.ll
@@ -0,0 +1,55 @@
+; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=X87
+; RUN: llc < %s -march=x86-64 -mattr=-sse | FileCheck %s -check-prefix=X87
+; RUN: llc < %s -march=x86 -mattr=-x87 | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
+; RUN: llc < %s -march=x86-64 -mattr=-x87,-sse | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
+; RUN: llc < %s -march=x86 -mattr=-x87,+sse | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
+; RUN: llc < %s -march=x86-64 -mattr=-x87,-sse2 | FileCheck %s -check-prefix=NOX87 --implicit-check-not "{{ }}f{{.*}}"
+
+define void @test(i32 %i, i64 %l, float* %pf, double* %pd, fp128* %pld) nounwind readnone {
+; X87-LABEL: test:
+; NOX87-LABEL: test:
+; X87: fild
+; NOX87: __floatunsisf
+ %tmp = uitofp i32 %i to float
+
+; X87: fild
+; NOX87: __floatdisf
+ %tmp1 = sitofp i64 %l to float
+
+; X87: fadd
+; NOX87: __addsf3
+ %tmp2 = fadd float %tmp, %tmp1
+
+; X87: fstp
+ store float %tmp2, float* %pf
+
+; X87: fild
+; NOX87: __floatunsidf
+ %tmp3 = uitofp i32 %i to double
+
+; X87: fild
+; NOX87: __floatdidf
+ %tmp4 = sitofp i64 %l to double
+
+; X87: fadd
+; NOX87: __adddf3
+ %tmp5 = fadd double %tmp3, %tmp4
+
+; X87: fstp
+ store double %tmp5, double* %pd
+
+; X87: __floatsitf
+; NOX87: __floatsitf
+ %tmp6 = sitofp i32 %i to fp128
+
+; X87: __floatunditf
+; NOX87: __floatunditf
+ %tmp7 = uitofp i64 %l to fp128
+
+; X87: __addtf3
+; NOX87: __addtf3
+ %tmp8 = fadd fp128 %tmp6, %tmp7
+ store fp128 %tmp8, fp128* %pld
+
+ ret void
+}
OpenPOWER on IntegriCloud