================ @@ -0,0 +1,153 @@ +// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \ +// RUN: dxil-pc-shadermodel6.3-library %s -fnative-half-type \ +// RUN: -emit-llvm -disable-llvm-passes -o - | FileCheck %s -DTARGET=dx +// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \ +// RUN: spirv-unknown-vulkan-compute %s -fnative-half-type \ +// RUN: -emit-llvm -disable-llvm-passes \ +// RUN: -o - | FileCheck %s -DTARGET=spv + +#ifdef __HLSL_ENABLE_16_BIT +// CHECK-LABEL: test_firstbithigh_ushort +// CHECK: call i16 @llvm.[[TARGET]].firstbituhigh.i16 +int test_firstbithigh_ushort(uint16_t p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ushort2 +// CHECK: call <2 x i16> @llvm.[[TARGET]].firstbituhigh.v2i16 +uint16_t2 test_firstbithigh_ushort2(uint16_t2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ushort3 +// CHECK: call <3 x i16> @llvm.[[TARGET]].firstbituhigh.v3i16 +uint16_t3 test_firstbithigh_ushort3(uint16_t3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ushort4 +// CHECK: call <4 x i16> @llvm.[[TARGET]].firstbituhigh.v4i16 +uint16_t4 test_firstbithigh_ushort4(uint16_t4 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_short +// CHECK: call i16 @llvm.[[TARGET]].firstbitshigh.i16 +int16_t test_firstbithigh_short(int16_t p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_short2 +// CHECK: call <2 x i16> @llvm.[[TARGET]].firstbitshigh.v2i16 +int16_t2 test_firstbithigh_short2(int16_t2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_short3 +// CHECK: call <3 x i16> @llvm.[[TARGET]].firstbitshigh.v3i16 +int16_t3 test_firstbithigh_short3(int16_t3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_short4 +// CHECK: call <4 x i16> @llvm.[[TARGET]].firstbitshigh.v4i16 +int16_t4 test_firstbithigh_short4(int16_t4 p0) { + return firstbithigh(p0); +} +#endif // __HLSL_ENABLE_16_BIT + +// CHECK-LABEL: test_firstbithigh_uint +// CHECK: call i32 @llvm.[[TARGET]].firstbituhigh.i32 +uint test_firstbithigh_uint(uint p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_uint2 +// CHECK: call <2 x i32> @llvm.[[TARGET]].firstbituhigh.v2i32 +uint2 test_firstbithigh_uint2(uint2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_uint3 +// CHECK: call <3 x i32> @llvm.[[TARGET]].firstbituhigh.v3i32 +uint3 test_firstbithigh_uint3(uint3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_uint4 +// CHECK: call <4 x i32> @llvm.[[TARGET]].firstbituhigh.v4i32 +uint4 test_firstbithigh_uint4(uint4 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ulong +// CHECK: call i64 @llvm.[[TARGET]].firstbituhigh.i64 +uint64_t test_firstbithigh_ulong(uint64_t p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ulong2 +// CHECK: call <2 x i64> @llvm.[[TARGET]].firstbituhigh.v2i64 +uint64_t2 test_firstbithigh_ulong2(uint64_t2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ulong3 +// CHECK: call <3 x i64> @llvm.[[TARGET]].firstbituhigh.v3i64 +uint64_t3 test_firstbithigh_ulong3(uint64_t3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_ulong4 +// CHECK: call <4 x i64> @llvm.[[TARGET]].firstbituhigh.v4i64 +uint64_t4 test_firstbithigh_ulong4(uint64_t4 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_int +// CHECK: call i32 @llvm.[[TARGET]].firstbitshigh.i32 +int test_firstbithigh_int(int p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_int2 +// CHECK: call <2 x i32> @llvm.[[TARGET]].firstbitshigh.v2i32 +int2 test_firstbithigh_int2(int2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_int3 +// CHECK: call <3 x i32> @llvm.[[TARGET]].firstbitshigh.v3i32 +int3 test_firstbithigh_int3(int3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_int4 +// CHECK: call <4 x i32> @llvm.[[TARGET]].firstbitshigh.v4i32 +int4 test_firstbithigh_int4(int4 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_long +// CHECK: call i64 @llvm.[[TARGET]].firstbitshigh.i64 +int64_t test_firstbithigh_long(int64_t p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_long2 +// CHECK: call <2 x i64> @llvm.[[TARGET]].firstbitshigh.v2i64 +int64_t2 test_firstbithigh_long2(int64_t2 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_long3 +// CHECK: call <3 x i64> @llvm.[[TARGET]].firstbitshigh.v3i64 +int64_t3 test_firstbithigh_long3(int64_t3 p0) { + return firstbithigh(p0); +} + +// CHECK-LABEL: test_firstbithigh_long4 +// CHECK: call <4 x i64> @llvm.[[TARGET]].firstbitshigh.v4i64 +int64_t4 test_firstbithigh_long4(int64_t4 p0) { + return firstbithigh(p0); +} ---------------- farzonl wrote:
add new line https://github.com/llvm/llvm-project/pull/111082 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits