1 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
2 // RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type \
3 // RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s \
4 // RUN: --check-prefixes=CHECK,NATIVE_HALF
5 // RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \
6 // RUN: spirv-unknown-vulkan-compute %s -emit-llvm -disable-llvm-passes \
7 // RUN: -o - | FileCheck %s --check-prefixes=CHECK,NO_HALF
9 // CHECK-LABEL: test_tan_half
10 // NATIVE_HALF: call half @llvm.tan.f16
11 // NO_HALF: call float @llvm.tan.f32
12 half test_tan_half ( half p0 ) {
16 // CHECK-LABEL: test_tan_half2
17 // NATIVE_HALF: call <2 x half> @llvm.tan.v2f16
18 // NO_HALF: call <2 x float> @llvm.tan.v2f32
19 half2 test_tan_half2 ( half2 p0 ) {
23 // CHECK-LABEL: test_tan_half3
24 // NATIVE_HALF: call <3 x half> @llvm.tan.v3f16
25 // NO_HALF: call <3 x float> @llvm.tan.v3f32
26 half3 test_tan_half3 ( half3 p0 ) {
30 // CHECK-LABEL: test_tan_half4
31 // NATIVE_HALF: call <4 x half> @llvm.tan.v4f16
32 // NO_HALF: call <4 x float> @llvm.tan.v4f32
33 half4 test_tan_half4 ( half4 p0 ) {
37 // CHECK-LABEL: test_tan_float
38 // CHECK: call float @llvm.tan.f32
39 float test_tan_float ( float p0 ) {
43 // CHECK-LABEL: test_tan_float2
44 // CHECK: call <2 x float> @llvm.tan.v2f32
45 float2 test_tan_float2 ( float2 p0 ) {
49 // CHECK-LABEL: test_tan_float3
50 // CHECK: call <3 x float> @llvm.tan.v3f32
51 float3 test_tan_float3 ( float3 p0 ) {
55 // CHECK-LABEL: test_tan_float4
56 // CHECK: call <4 x float> @llvm.tan.v4f32
57 float4 test_tan_float4 ( float4 p0 ) {