brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 87524ae Raw
109 lines · plain
1// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \2// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type -fnative-int16-type \3// RUN:   -emit-llvm -disable-llvm-passes -O3 -o - | FileCheck %s4 5#ifdef __HLSL_ENABLE_16_BIT6// CHECK-LABEL: test_countbits_ushort7// CHECK: [[A:%.*]] = call i16 @llvm.ctpop.i168// CHECK-NEXT: zext i16 [[A]] to i329uint test_countbits_ushort(uint16_t p0)10{11	return countbits(p0);12}13// CHECK-LABEL: test_countbits_short14// CHECK: [[A:%.*]] = call i16 @llvm.ctpop.i1615// CHECK-NEXT: sext i16 [[A]] to i3216uint test_countbits_short(int16_t p0)17{18	return countbits(p0);19}20// CHECK-LABEL: test_countbits_ushort221// CHECK: [[A:%.*]] = call <2 x i16> @llvm.ctpop.v2i1622// CHECK-NEXT: zext <2 x i16> [[A]] to <2 x i32>23uint2 test_countbits_ushort2(uint16_t2 p0)24{25	return countbits(p0);26}27// CHECK-LABEL: test_countbits_ushort328// CHECK: [[A:%.*]] = call <3 x i16> @llvm.ctpop.v3i1629// CHECK-NEXT: zext <3 x i16> [[A]] to <3 x i32>30uint3 test_countbits_ushort3(uint16_t3 p0)31{32	return countbits(p0);33}34// CHECK-LABEL: test_countbits_ushort435// CHECK: [[A:%.*]] = call <4 x i16> @llvm.ctpop.v4i1636// CHECK-NEXT: zext <4 x i16> [[A]] to <4 x i32>37uint4 test_countbits_ushort4(uint16_t4 p0)38{39	return countbits(p0);40}41#endif42 43// CHECK-LABEL: test_countbits_uint44// CHECK: call i32 @llvm.ctpop.i3245uint test_countbits_uint(uint p0)46{47	return countbits(p0);48}49// CHECK-LABEL: test_countbits_int50// CHECK: call i32 @llvm.ctpop.i3251uint test_countbits_int(int p0)52{53	return countbits(p0);54}55// CHECK-LABEL: test_countbits_uint256// CHECK: call <2 x i32> @llvm.ctpop.v2i3257uint2 test_countbits_uint2(uint2 p0)58{59	return countbits(p0);60}61// CHECK-LABEL: test_countbits_uint362// CHECK: call <3 x i32> @llvm.ctpop.v3i3263uint3 test_countbits_uint3(uint3 p0)64{65	return countbits(p0);66}67// CHECK-LABEL: test_countbits_uint468// CHECK: call <4 x i32> @llvm.ctpop.v4i3269uint4 test_countbits_uint4(uint4 p0)70{71	return countbits(p0);72}73 74// CHECK-LABEL: test_countbits_long75// CHECK: [[A:%.*]] = call i64 @llvm.ctpop.i6476// CHECK-NEXT: trunc i64 [[A]] to i3277uint test_countbits_long(uint64_t p0)78{79	return countbits(p0);80}81// CHECK-LABEL: test_countbits_slong82// CHECK: [[A:%.*]] = call i64 @llvm.ctpop.i6483// CHECK-NEXT: trunc i64 [[A]] to i3284uint test_countbits_slong(int64_t p0)85{86	return countbits(p0);87}88// CHECK-LABEL: test_countbits_long289// CHECK: [[A:%.*]] = call <2 x i64> @llvm.ctpop.v2i6490// CHECK-NEXT: trunc <2 x i64> [[A]] to <2 x i32>91uint2 test_countbits_long2(uint64_t2 p0)92{93	return countbits(p0);94}95// CHECK-LABEL: test_countbits_long396// CHECK: [[A:%.*]] = call <3 x i64> @llvm.ctpop.v3i6497// CHECK-NEXT: trunc <3 x i64> [[A]] to <3 x i32>98uint3 test_countbits_long3(uint64_t3 p0)99{100	return countbits(p0);101}102// CHECK-LABEL: test_countbits_long4103// CHECK: [[A:%.*]] = call <4 x i64> @llvm.ctpop.v4i64104// CHECK-NEXT: trunc <4 x i64> [[A]] to <4 x i32>105uint4 test_countbits_long4(uint64_t4 p0)106{107	return countbits(p0);108}109