73 lines
3.2 KiB
LLVM
73 lines
3.2 KiB
LLVM
; RUN: opt -vector-library=SVML -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,SVML
|
|
; RUN: opt -vector-library=MASSV -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,MASSV
|
|
; RUN: opt -vector-library=LIBMVEC-X86 -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,LIBMVEC-X86
|
|
; RUN: opt -vector-library=Accelerate -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,ACCELERATE
|
|
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
; COMMON-LABEL: @llvm.compiler.used = appending global
|
|
; SVML-SAME: [6 x ptr] [
|
|
; SVML-SAME: ptr @__svml_sin2,
|
|
; SVML-SAME: ptr @__svml_sin4,
|
|
; SVML-SAME: ptr @__svml_sin8,
|
|
; SVML-SAME: ptr @__svml_log10f4,
|
|
; SVML-SAME: ptr @__svml_log10f8,
|
|
; SVML-SAME: ptr @__svml_log10f16
|
|
; MASSV-SAME: [2 x ptr] [
|
|
; MASSV-SAME: ptr @__sind2,
|
|
; MASSV-SAME: ptr @__log10f4
|
|
; ACCELERATE-SAME: [1 x ptr] [
|
|
; ACCELERATE-SAME: ptr @vlog10f
|
|
; LIBMVEC-X86-SAME: [2 x ptr] [
|
|
; LIBMVEC-X86-SAME: ptr @_ZGVbN2v_sin,
|
|
; LIBMVEC-X86-SAME: ptr @_ZGVdN4v_sin
|
|
; COMMON-SAME: ], section "llvm.metadata"
|
|
|
|
define double @sin_f64(double %in) {
|
|
; COMMON-LABEL: @sin_f64(
|
|
; SVML: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
|
|
; MASSV: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
|
|
; ACCELERATE: call double @sin(double %{{.*}})
|
|
; LIBMVEC-X86: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
|
|
; No mapping of "sin" to a vector function for Accelerate.
|
|
; ACCELERATE-NOT: _ZGV_LLVM_{{.*}}_sin({{.*}})
|
|
%call = tail call double @sin(double %in)
|
|
ret double %call
|
|
}
|
|
|
|
declare double @sin(double) #0
|
|
|
|
define float @call_llvm.log10.f32(float %in) {
|
|
; COMMON-LABEL: @call_llvm.log10.f32(
|
|
; SVML: call float @llvm.log10.f32(float %{{.*}})
|
|
; LIBMVEC-X86: call float @llvm.log10.f32(float %{{.*}})
|
|
; MASSV: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
|
|
; ACCELERATE: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
|
|
; No mapping of "llvm.log10.f32" to a vector function for SVML.
|
|
; SVML-NOT: _ZGV_LLVM_{{.*}}_llvm.log10.f32({{.*}})
|
|
; LIBMVEC-X86-NOT: _ZGV_LLVM_{{.*}}_llvm.log10.f32({{.*}})
|
|
%call = tail call float @llvm.log10.f32(float %in)
|
|
ret float %call
|
|
}
|
|
|
|
declare float @llvm.log10.f32(float) #0
|
|
attributes #0 = { nounwind readnone }
|
|
|
|
; SVML: attributes #[[SIN]] = { "vector-function-abi-variant"=
|
|
; SVML-SAME: "_ZGV_LLVM_N2v_sin(__svml_sin2),
|
|
; SVML-SAME: _ZGV_LLVM_N4v_sin(__svml_sin4),
|
|
; SVML-SAME: _ZGV_LLVM_N8v_sin(__svml_sin8)" }
|
|
|
|
; MASSV: attributes #[[SIN]] = { "vector-function-abi-variant"=
|
|
; MASSV-SAME: "_ZGV_LLVM_N2v_sin(__sind2)" }
|
|
; MASSV: attributes #[[LOG10]] = { "vector-function-abi-variant"=
|
|
; MASSV-SAME: "_ZGV_LLVM_N4v_llvm.log10.f32(__log10f4)" }
|
|
|
|
; ACCELERATE: attributes #[[LOG10]] = { "vector-function-abi-variant"=
|
|
; ACCELERATE-SAME: "_ZGV_LLVM_N4v_llvm.log10.f32(vlog10f)" }
|
|
|
|
; LIBMVEC-X86: attributes #[[SIN]] = { "vector-function-abi-variant"=
|
|
; LIBMVEC-X86-SAME: "_ZGV_LLVM_N2v_sin(_ZGVbN2v_sin),
|
|
; LIBMVEC-X86-SAME: _ZGV_LLVM_N4v_sin(_ZGVdN4v_sin)" }
|