aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/Generic/replace-intrinsics-with-veclib-darwin-libsystem-m.ll
blob: 7602e1900e436bf578b787bcbfe628b014901ba6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes
; RUN: opt -vector-library=Darwin_libsystem_m -replace-with-veclib -S < %s | FileCheck %s

target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define <4 x float> @sin_v4f32(<4 x float> %in) {
; CHECK-LABEL: define {{[^@]+}}@sin_v4f32
; CHECK-SAME: (<4 x float> [[IN:%.*]]) {
; CHECK-NEXT:    [[TMP1:%.*]] = call <4 x float> @_simd_sin_f4(<4 x float> [[IN]])
; CHECK-NEXT:    ret <4 x float> [[TMP1]]
;
  %call = call <4 x float> @llvm.sin.v4f32(<4 x float> %in)
  ret <4 x float> %call
}
declare <4 x float> @llvm.sin.v4f32(<4 x float>) #0

define <2 x double> @sin_v2f64(<2 x double> %in) {
; CHECK-LABEL: define {{[^@]+}}@sin_v2f64
; CHECK-SAME: (<2 x double> [[IN:%.*]]) {
; CHECK-NEXT:    [[TMP1:%.*]] = call <2 x double> @_simd_sin_d2(<2 x double> [[IN]])
; CHECK-NEXT:    ret <2 x double> [[TMP1]]
;
  %call = call <2 x double> @llvm.sin.v2f64(<2 x double> %in)
  ret <2 x double> %call
}
declare <2 x double> @llvm.sin.v2f64(<2 x double>)


define <2 x double> @exp_v2(<2 x double> %in) {
; CHECK-LABEL: define {{[^@]+}}@exp_v2
; CHECK-SAME: (<2 x double> [[IN:%.*]]) {
; CHECK-NEXT:    [[TMP1:%.*]] = call <2 x double> @_simd_exp_d2(<2 x double> [[IN]])
; CHECK-NEXT:    ret <2 x double> [[TMP1]]
;
  %call = call <2 x double> @llvm.exp.v2f64(<2 x double> %in)
  ret <2 x double> %call
}

declare <2 x double> @llvm.exp.v2f64(<2 x double>) #0

define <4 x float> @exp_f32(<4 x float> %in) {
; CHECK-LABEL: define {{[^@]+}}@exp_f32
; CHECK-SAME: (<4 x float> [[IN:%.*]]) {
; CHECK-NEXT:    [[TMP1:%.*]] = call <4 x float> @_simd_exp_f4(<4 x float> [[IN]])
; CHECK-NEXT:    ret <4 x float> [[TMP1]]
;
  %call = call <4 x float> @llvm.exp.v4f32(<4 x float> %in)
  ret <4 x float> %call
}

declare <4 x float> @llvm.exp.v4f32(<4 x float>) #0

define <3 x double> @exp_v3(<3 x double> %in) {
; CHECK-LABEL: define {{[^@]+}}@exp_v3
; CHECK-SAME: (<3 x double> [[IN:%.*]]) {
; CHECK-NEXT:    [[CALL:%.*]] = call <3 x double> @llvm.exp.v3f64(<3 x double> [[IN]])
; CHECK-NEXT:    ret <3 x double> [[CALL]]
;
  %call = call <3 x double> @llvm.exp.v3f64(<3 x double> %in)
  ret <3 x double> %call
}

declare <3 x double> @llvm.exp.v3f64(<3 x double>) #0