94 lines · plain
1// RUN: %clang_cc1 -std=hlsl202x -finclude-default-header -x hlsl -triple \2// RUN: dxil-pc-shadermodel6.3-library %s -emit-llvm -disable-llvm-passes \3// RUN: -o - | FileCheck %s --check-prefixes=CHECK \4// RUN: -DTARGET=dx -DFNATTRS="hidden noundef nofpclass(nan inf)"5// RUN: %clang_cc1 -std=hlsl202x -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 \8// RUN: -DTARGET=spv -DFNATTRS="hidden spir_func noundef nofpclass(nan inf)"9 10// CHECK: define [[FNATTRS]] float @11// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn float @llvm.[[TARGET]].radians.f32(12// CHECK: ret float %{{.*}}13float test_radians_double(double p0) { return radians(p0); }14// CHECK: define [[FNATTRS]] <2 x float> @15// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.[[TARGET]].radians.v2f3216// CHECK: ret <2 x float> %{{.*}}17float2 test_radians_double2(double2 p0) { return radians(p0); }18// CHECK: define [[FNATTRS]] <3 x float> @19// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.[[TARGET]].radians.v3f3220// CHECK: ret <3 x float> %{{.*}}21float3 test_radians_double3(double3 p0) { return radians(p0); }22// CHECK: define [[FNATTRS]] <4 x float> @23// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.[[TARGET]].radians.v4f3224// CHECK: ret <4 x float> %{{.*}}25float4 test_radians_double4(double4 p0) { return radians(p0); }26 27// CHECK: define [[FNATTRS]] float @28// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn float @llvm.[[TARGET]].radians.f32(29// CHECK: ret float %{{.*}}30float test_radians_int(int p0) { return radians(p0); }31// CHECK: define [[FNATTRS]] <2 x float> @32// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.[[TARGET]].radians.v2f3233// CHECK: ret <2 x float> %{{.*}}34float2 test_radians_int2(int2 p0) { return radians(p0); }35// CHECK: define [[FNATTRS]] <3 x float> @36// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.[[TARGET]].radians.v3f3237// CHECK: ret <3 x float> %{{.*}}38float3 test_radians_int3(int3 p0) { return radians(p0); }39// CHECK: define [[FNATTRS]] <4 x float> @40// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.[[TARGET]].radians.v4f3241// CHECK: ret <4 x float> %{{.*}}42float4 test_radians_int4(int4 p0) { return radians(p0); }43 44// CHECK: define [[FNATTRS]] float @45// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn float @llvm.[[TARGET]].radians.f32(46// CHECK: ret float %{{.*}}47float test_radians_uint(uint p0) { return radians(p0); }48// CHECK: define [[FNATTRS]] <2 x float> @49// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.[[TARGET]].radians.v2f3250// CHECK: ret <2 x float> %{{.*}}51float2 test_radians_uint2(uint2 p0) { return radians(p0); }52// CHECK: define [[FNATTRS]] <3 x float> @53// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.[[TARGET]].radians.v3f3254// CHECK: ret <3 x float> %{{.*}}55float3 test_radians_uint3(uint3 p0) { return radians(p0); }56// CHECK: define [[FNATTRS]] <4 x float> @57// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.[[TARGET]].radians.v4f3258// CHECK: ret <4 x float> %{{.*}}59float4 test_radians_uint4(uint4 p0) { return radians(p0); }60 61// CHECK: define [[FNATTRS]] float @62// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn float @llvm.[[TARGET]].radians.f32(63// CHECK: ret float %{{.*}}64float test_radians_int64_t(int64_t p0) { return radians(p0); }65// CHECK: define [[FNATTRS]] <2 x float> @66// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.[[TARGET]].radians.v2f3267// CHECK: ret <2 x float> %{{.*}}68float2 test_radians_int64_t2(int64_t2 p0) { return radians(p0); }69// CHECK: define [[FNATTRS]] <3 x float> @70// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.[[TARGET]].radians.v3f3271// CHECK: ret <3 x float> %{{.*}}72float3 test_radians_int64_t3(int64_t3 p0) { return radians(p0); }73// CHECK: define [[FNATTRS]] <4 x float> @74// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.[[TARGET]].radians.v4f3275// CHECK: ret <4 x float> %{{.*}}76float4 test_radians_int64_t4(int64_t4 p0) { return radians(p0); }77 78// CHECK: define [[FNATTRS]] float @79// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn float @llvm.[[TARGET]].radians.f32(80// CHECK: ret float %{{.*}}81float test_radians_uint64_t(uint64_t p0) { return radians(p0); }82// CHECK: define [[FNATTRS]] <2 x float> @83// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <2 x float> @llvm.[[TARGET]].radians.v2f3284// CHECK: ret <2 x float> %{{.*}}85float2 test_radians_uint64_t2(uint64_t2 p0) { return radians(p0); }86// CHECK: define [[FNATTRS]] <3 x float> @87// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <3 x float> @llvm.[[TARGET]].radians.v3f3288// CHECK: ret <3 x float> %{{.*}}89float3 test_radians_uint64_t3(uint64_t3 p0) { return radians(p0); }90// CHECK: define [[FNATTRS]] <4 x float> @91// CHECK: %{{.*}} = call reassoc nnan ninf nsz arcp afn <4 x float> @llvm.[[TARGET]].radians.v4f3292// CHECK: ret <4 x float> %{{.*}}93float4 test_radians_uint64_t4(uint64_t4 p0) { return radians(p0); }94