OSDN Git Service

[TargetLibraryInfo] Teach isValidProtoForLibFunc about tan
authorDavid Majnemer <david.majnemer@gmail.com>
Wed, 15 Jun 2016 16:47:23 +0000 (16:47 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Wed, 15 Jun 2016 16:47:23 +0000 (16:47 +0000)
We would fail to validate the type of the tan function which would cause
downstream users of isValidProtoForLibFunc to assert.

This fixes PR28143.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272802 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/TargetLibraryInfo.cpp
test/Transforms/InstCombine/pr28143.ll [new file with mode: 0644]

index 789b039..f70b438 100644 (file)
@@ -897,6 +897,9 @@ bool TargetLibraryInfoImpl::isValidProtoForLibFunc(const FunctionType &FTy,
   case LibFunc::cos:
   case LibFunc::cosf:
   case LibFunc::cosl:
+  case LibFunc::tan:
+  case LibFunc::tanf:
+  case LibFunc::tanl:
   case LibFunc::exp:
   case LibFunc::expf:
   case LibFunc::expl:
diff --git a/test/Transforms/InstCombine/pr28143.ll b/test/Transforms/InstCombine/pr28143.ll
new file mode 100644 (file)
index 0000000..9ef273e
--- /dev/null
@@ -0,0 +1,12 @@
+; RUN: opt -S -instcombine < %s | FileCheck %s
+
+define void @test1() {
+entry:
+  call void @tan()
+  ret void
+}
+; CHECK-LABEL: define void @test1(
+; CHECK:      call void @tan()
+; CHECK-NEXT: ret void
+
+declare void @tan()