diff options
author | Andrey Turetskiy <andrey.turetskiy@gmail.com> | 2016-03-23 11:13:54 +0000 |
---|---|---|
committer | Andrey Turetskiy <andrey.turetskiy@gmail.com> | 2016-03-23 11:13:54 +0000 |
commit | 6a3d561ea036c91ba15fbb255cf6f979f58cdb8c (patch) | |
tree | 90ae517dad75745d06f0582ee949ecd068888be3 /llvm/test | |
parent | c45baf212a0bb6742b75e4ed112a466d338ebb2d (diff) | |
download | bcm5719-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.ll | 55 |
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 +} |