From 7d0fb7ebd5396d3f95ecb5dc57de8f08ed543a05 Mon Sep 17 00:00:00 2001 From: Reed Kotler Date: Sun, 25 Aug 2013 02:40:25 +0000 Subject: Start to add the LLVM builtins to the mips16 exclusion lists for fp. I need to add the rest of these to the list or else to delay putting out the actual stub until later in code generation when I know if the external function ever got emitted Resubmit this patch. The target triple needs to be added to the test so that clang does not tell the backend the wrong target when the host is BSD. There is a clang bug in here somewhere that I need to track down. At Mips this has been filed internally as a bug. llvm-svn: 189186 --- llvm/test/CodeGen/Mips/powif64_16.ll | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 llvm/test/CodeGen/Mips/powif64_16.ll (limited to 'llvm/test/CodeGen') diff --git a/llvm/test/CodeGen/Mips/powif64_16.ll b/llvm/test/CodeGen/Mips/powif64_16.ll new file mode 100644 index 00000000000..8431f316d65 --- /dev/null +++ b/llvm/test/CodeGen/Mips/powif64_16.ll @@ -0,0 +1,28 @@ +; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mcpu=mips16 -mips16-hard-float -soft-float -relocation-model=static < %s | FileCheck %s + +@x = global double 4.500000e+00, align 8 +@i = global i32 4, align 4 +@y = common global double 0.000000e+00, align 8 + +; Function Attrs: nounwind optsize +define i32 @main() #0 { +entry: + %0 = load double* @x, align 8, !tbaa !0 + %1 = load i32* @i, align 4, !tbaa !3 + %2 = tail call double @llvm.powi.f64(double %0, i32 %1) +; CHECK-NOT: .ent __call_stub_fp_llvm.powi.f64 +; CHECK-NOT: {{.*}} jal llvm.powi.f64 + store double %2, double* @y, align 8, !tbaa !0 + ret i32 0 +} + +; Function Attrs: nounwind readonly +declare double @llvm.powi.f64(double, i32) #1 + +attributes #0 = { nounwind optsize "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="true" } +attributes #1 = { nounwind readonly } + +!0 = metadata !{metadata !"double", metadata !1} +!1 = metadata !{metadata !"omnipotent char", metadata !2} +!2 = metadata !{metadata !"Simple C/C++ TBAA"} +!3 = metadata !{metadata !"int", metadata !1} -- cgit v1.2.3