Imported Upstream version 5.18.0.179

Former-commit-id: 67aa10e65b237e1c4537630979ee99ebe1374215
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-10-25 08:34:57 +00:00
parent d6bde52373
commit 8625704ad8
28485 changed files with 3866843 additions and 50 deletions

View File

@@ -0,0 +1,23 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -partially-inline-libcalls -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
; RUN: opt -S -passes=partially-inline-libcalls -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
define float @f(float %val) {
; CHECK-LABEL: @f(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[RES:%.*]] = tail call float @sqrtf(float [[VAL:%.*]]) #0
; CHECK-NEXT: [[TMP0:%.*]] = fcmp oge float [[VAL]], 0.000000e+00
; CHECK-NEXT: br i1 [[TMP0]], label [[ENTRY_SPLIT:%.*]], label [[CALL_SQRT:%.*]]
; CHECK: call.sqrt:
; CHECK-NEXT: [[TMP1:%.*]] = tail call float @sqrtf(float [[VAL]])
; CHECK-NEXT: br label [[ENTRY_SPLIT]]
; CHECK: entry.split:
; CHECK-NEXT: [[TMP2:%.*]] = phi float [ [[RES]], [[ENTRY:%.*]] ], [ [[TMP1]], [[CALL_SQRT]] ]
; CHECK-NEXT: ret float [[TMP2]]
;
entry:
%res = tail call float @sqrtf(float %val)
ret float %res
}
declare float @sqrtf(float)

View File

@@ -0,0 +1,2 @@
if not 'X86' in config.root.targets:
config.unsupported = True

View File

@@ -0,0 +1,23 @@
; RUN: opt -S -partially-inline-libcalls < %s | FileCheck %s
; RUN: opt -S -passes=partially-inline-libcalls < %s | FileCheck %s
target triple = "x86_64-unknown-linux-gnu"
declare i32 @sqrt()
declare float @sqrtf()
; CHECK-LABEL: @foo
define i32 @foo() {
; CHECK: call{{.*}}@sqrt
; CHECK-NOT: call{{.*}}@sqrt
%r = call i32 @sqrt()
ret i32 %r
}
; CHECK-LABEL: @bar
define float @bar() {
; CHECK: call{{.*}}@sqrtf
; CHECK-NOT: call{{.*}}@sqrtf
%r = call float @sqrtf()
ret float %r
}

View File

@@ -0,0 +1,12 @@
; RUN: opt -S -partially-inline-libcalls -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
; RUN: opt -S -passes=partially-inline-libcalls -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
define float @f(float %val) {
; CHECK-LABEL: @f
; CHECK: call{{.*}}@sqrtf
; CHECK-NOT: call{{.*}}@sqrtf
%res = tail call float @sqrtf(float %val) nobuiltin
ret float %res
}
declare float @sqrtf(float)