1
- ; RUN: opt -vector-library=SVML -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,SVML
2
- ; RUN: opt -vector-library=MASSV -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,MASSV
3
- ; RUN: opt -vector-library=LIBMVEC-X86 -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,LIBMVEC-X86
4
- ; RUN: opt -vector-library=Accelerate -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,ACCELERATE
5
-
6
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
7
- target triple = "x86_64-unknown-linux-gnu"
1
+ ; RUN: opt -mtriple=x86_64-unknown-linux-gnu -vector-library=SVML -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,SVML
2
+ ; RUN: opt -mtriple=powerpc64-unknown-linux-gnu -vector-library=MASSV -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,MASSV
3
+ ; RUN: opt -mtriple=x86_64-unknown-linux-gnu -vector-library=LIBMVEC-X86 -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,LIBMVEC-X86
4
+ ; RUN: opt -mtriple=x86_64-unknown-linux-gnu -vector-library=Accelerate -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,ACCELERATE
5
+ ; RUN: opt -mtriple=aarch64-unknown-linux-gnu -vector-library=sleefgnuabi -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,SLEEFGNUABI
6
+ ; RUN: opt -mtriple=aarch64-unknown-linux-gnu -vector-library=ArmPL -passes=inject-tli-mappings -S < %s | FileCheck %s --check-prefixes=COMMON,ARMPL
8
7
9
8
; COMMON-LABEL: @llvm.compiler.used = appending global
10
9
; SVML-SAME: [6 x ptr] [
@@ -22,6 +21,16 @@ target triple = "x86_64-unknown-linux-gnu"
22
21
; LIBMVEC-X86-SAME: [2 x ptr] [
23
22
; LIBMVEC-X86-SAME: ptr @_ZGVbN2v_sin,
24
23
; LIBMVEC-X86-SAME: ptr @_ZGVdN4v_sin
24
+ ; SLEEFGNUABI-SAME: [4 x ptr] [
25
+ ; SLEEFGNUABI-SAME: ptr @_ZGVnN2v_sin,
26
+ ; SLEEFGNUABI-SAME: ptr @_ZGVsMxv_sin,
27
+ ; SLEEFGNUABI_SAME; ptr @_ZGVnN4v_log10f,
28
+ ; SLEEFGNUABI-SAME: ptr @_ZGVsMxv_log10f
29
+ ; ARMPL-SAME: [4 x ptr] [
30
+ ; ARMPL-SAME: ptr @armpl_vsinq_f64,
31
+ ; ARMPL-SAME: ptr @armpl_svsin_f64_x,
32
+ ; ARMPL-SAME: ptr @armpl_vlog10q_f32,
33
+ ; ARMPL-SAME: ptr @armpl_svlog10_f32_x
25
34
; COMMON-SAME: ], section "llvm.metadata"
26
35
27
36
define double @sin_f64 (double %in ) {
@@ -30,8 +39,10 @@ define double @sin_f64(double %in) {
30
39
; MASSV: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
31
40
; ACCELERATE: call double @sin(double %{{.*}})
32
41
; LIBMVEC-X86: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
42
+ ; SLEEFGNUABI: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
43
+ ; ARMPL: call double @sin(double %{{.*}}) #[[SIN:[0-9]+]]
33
44
; No mapping of "sin" to a vector function for Accelerate.
34
- ; ACCELERATE-NOT: _ZGV_LLVM_{{.*}}_sin({{.*}})
45
+ ; ACCELERATE-NOT: _ZGV_LLVM_{{.*}}_sin({{.*}})
35
46
%call = tail call double @sin (double %in )
36
47
ret double %call
37
48
}
@@ -41,11 +52,13 @@ declare double @sin(double) #0
41
52
define float @call_llvm.log10.f32 (float %in ) {
42
53
; COMMON-LABEL: @call_llvm.log10.f32(
43
54
; SVML: call float @llvm.log10.f32(float %{{.*}})
44
- ; LIBMVEC-X86: call float @llvm.log10.f32(float %{{.*}})
55
+ ; LIBMVEC-X86: call float @llvm.log10.f32(float %{{.*}})
45
56
; MASSV: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
46
57
; ACCELERATE: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
58
+ ; SLEEFGNUABI: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
59
+ ; ARMPL: call float @llvm.log10.f32(float %{{.*}}) #[[LOG10:[0-9]+]]
47
60
; No mapping of "llvm.log10.f32" to a vector function for SVML.
48
- ; SVML-NOT: _ZGV_LLVM_{{.*}}_llvm.log10.f32({{.*}})
61
+ ; SVML-NOT: _ZGV_LLVM_{{.*}}_llvm.log10.f32({{.*}})
49
62
; LIBMVEC-X86-NOT: _ZGV_LLVM_{{.*}}_llvm.log10.f32({{.*}})
50
63
%call = tail call float @llvm.log10.f32 (float %in )
51
64
ret float %call
@@ -70,3 +83,17 @@ attributes #0 = { nounwind readnone }
70
83
; LIBMVEC-X86: attributes #[[SIN]] = { "vector-function-abi-variant"=
71
84
; LIBMVEC-X86-SAME: "_ZGV_LLVM_N2v_sin(_ZGVbN2v_sin),
72
85
; LIBMVEC-X86-SAME: _ZGV_LLVM_N4v_sin(_ZGVdN4v_sin)" }
86
+
87
+ ; SLEEFGNUABI: attributes #[[SIN]] = { "vector-function-abi-variant"=
88
+ ; SLEEFGNUABI-SAME: "_ZGV_LLVM_N2v_sin(_ZGVnN2v_sin),
89
+ ; SLEEFGNUABI-SAME: _ZGV_LLVM_Mxv_sin(_ZGVsMxv_sin)" }
90
+ ; SLEEFGNUABI: attributes #[[LOG10]] = { "vector-function-abi-variant"=
91
+ ; SLEEFGNUABI-SAME: "_ZGV_LLVM_N4v_llvm.log10.f32(_ZGVnN4v_log10f),
92
+ ; SLEEFGNUABI-SAME: _ZGV_LLVM_Mxv_llvm.log10.f32(_ZGVsMxv_log10f)" }
93
+
94
+ ; ARMPL: attributes #[[SIN]] = { "vector-function-abi-variant"=
95
+ ; ARMPL-SAME: "_ZGV_LLVM_N2v_sin(armpl_vsinq_f64),
96
+ ; ARMPL-SAME _ZGV_LLVM_Mxv_sin(armpl_svsin_f64_x)" }
97
+ ; ARMPL: attributes #[[LOG10]] = { "vector-function-abi-variant"=
98
+ ; ARMPL-SAME: "_ZGV_LLVM_N4v_llvm.log10.f32(armpl_vlog10q_f32),
99
+ ; ARMPL-SAME _ZGV_LLVM_Mxv_llvm.log10.f32(armpl_svlog10_f32_x)" }
0 commit comments