1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes 2; RUN: opt -vector-library=Darwin_libsystem_m -replace-with-veclib -S < %s | FileCheck %s 3 4target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 5target triple = "x86_64-unknown-linux-gnu" 6 7define <4 x float> @sin_v4f32(<4 x float> %in) { 8; CHECK-LABEL: define {{[^@]+}}@sin_v4f32 9; CHECK-SAME: (<4 x float> [[IN:%.*]]) { 10; CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> @_simd_sin_f4(<4 x float> [[IN]]) 11; CHECK-NEXT: ret <4 x float> [[TMP1]] 12; 13 %call = call <4 x float> @llvm.sin.v4f32(<4 x float> %in) 14 ret <4 x float> %call 15} 16declare <4 x float> @llvm.sin.v4f32(<4 x float>) #0 17 18define <2 x double> @sin_v2f64(<2 x double> %in) { 19; CHECK-LABEL: define {{[^@]+}}@sin_v2f64 20; CHECK-SAME: (<2 x double> [[IN:%.*]]) { 21; CHECK-NEXT: [[TMP1:%.*]] = call <2 x double> @_simd_sin_d2(<2 x double> [[IN]]) 22; CHECK-NEXT: ret <2 x double> [[TMP1]] 23; 24 %call = call <2 x double> @llvm.sin.v2f64(<2 x double> %in) 25 ret <2 x double> %call 26} 27declare <2 x double> @llvm.sin.v2f64(<2 x double>) 28 29 30define <2 x double> @exp_v2(<2 x double> %in) { 31; CHECK-LABEL: define {{[^@]+}}@exp_v2 32; CHECK-SAME: (<2 x double> [[IN:%.*]]) { 33; CHECK-NEXT: [[TMP1:%.*]] = call <2 x double> @_simd_exp_d2(<2 x double> [[IN]]) 34; CHECK-NEXT: ret <2 x double> [[TMP1]] 35; 36 %call = call <2 x double> @llvm.exp.v2f64(<2 x double> %in) 37 ret <2 x double> %call 38} 39 40declare <2 x double> @llvm.exp.v2f64(<2 x double>) #0 41 42define <4 x float> @exp_f32(<4 x float> %in) { 43; CHECK-LABEL: define {{[^@]+}}@exp_f32 44; CHECK-SAME: (<4 x float> [[IN:%.*]]) { 45; CHECK-NEXT: [[TMP1:%.*]] = call <4 x float> @_simd_exp_f4(<4 x float> [[IN]]) 46; CHECK-NEXT: ret <4 x float> [[TMP1]] 47; 48 %call = call <4 x float> @llvm.exp.v4f32(<4 x float> %in) 49 ret <4 x float> %call 50} 51 52declare <4 x float> @llvm.exp.v4f32(<4 x float>) #0 53 54define <3 x double> @exp_v3(<3 x double> %in) { 55; CHECK-LABEL: define {{[^@]+}}@exp_v3 56; CHECK-SAME: (<3 x double> [[IN:%.*]]) { 57; CHECK-NEXT: [[CALL:%.*]] = call <3 x double> @llvm.exp.v3f64(<3 x double> [[IN]]) 58; CHECK-NEXT: ret <3 x double> [[CALL]] 59; 60 %call = call <3 x double> @llvm.exp.v3f64(<3 x double> %in) 61 ret <3 x double> %call 62} 63 64declare <3 x double> @llvm.exp.v3f64(<3 x double>) #0 65