File: basic_types.hlsl

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,245,044 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,666; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (95 lines) | stat: -rw-r--r-- 3,969 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// RUN: %clang_cc1 -std=hlsl2021 -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
// RUN: %clang_cc1 -std=hlsl2021 -finclude-default-header -x hlsl -triple \
// RUN:   dxil-pc-shadermodel6.3-library %s -fnative-half-type \
// RUN:   -emit-llvm -disable-llvm-passes -o - -DNAMESPACED| FileCheck %s


// CHECK: @uint16_t_Val = external hidden addrspace(2) global i16, align 2
// CHECK: @int16_t_Val = external hidden addrspace(2) global i16, align 2
// CHECK: @uint_Val = external hidden addrspace(2) global i32, align 4
// CHECK: @uint64_t_Val = external hidden addrspace(2) global i64, align 8
// CHECK: @int64_t_Val = external hidden addrspace(2) global i64, align 8
// CHECK: @int16_t2_Val = external hidden addrspace(2) global <2 x i16>, align 4
// CHECK: @int16_t3_Val = external hidden addrspace(2) global <3 x i16>, align 8
// CHECK: @int16_t4_Val = external hidden addrspace(2) global <4 x i16>, align 8
// CHECK: @uint16_t2_Val = external hidden addrspace(2) global <2 x i16>, align 4
// CHECK: @uint16_t3_Val = external hidden addrspace(2) global <3 x i16>, align 8
// CHECK: @uint16_t4_Val = external hidden addrspace(2) global <4 x i16>, align 8
// CHECK: @int2_Val = external hidden addrspace(2) global <2 x i32>, align 8
// CHECK: @int3_Val = external hidden addrspace(2) global <3 x i32>, align 16
// CHECK: @int4_Val = external hidden addrspace(2) global <4 x i32>, align 16
// CHECK: @uint2_Val = external hidden addrspace(2) global <2 x i32>, align 8
// CHECK: @uint3_Val = external hidden addrspace(2) global <3 x i32>, align 16
// CHECK: @uint4_Val = external hidden addrspace(2) global <4 x i32>, align 16
// CHECK: @int64_t2_Val = external hidden addrspace(2) global <2 x i64>, align 16
// CHECK: @int64_t3_Val = external hidden addrspace(2) global <3 x i64>, align 32
// CHECK: @int64_t4_Val = external hidden addrspace(2) global <4 x i64>, align 32
// CHECK: @uint64_t2_Val = external hidden addrspace(2) global <2 x i64>, align 16
// CHECK: @uint64_t3_Val = external hidden addrspace(2) global <3 x i64>, align 32
// CHECK: @uint64_t4_Val = external hidden addrspace(2) global <4 x i64>, align 32
// CHECK: @half2_Val = external hidden addrspace(2) global <2 x half>, align 4
// CHECK: @half3_Val = external hidden addrspace(2) global <3 x half>, align 8
// CHECK: @half4_Val = external hidden addrspace(2) global <4 x half>, align 8
// CHECK: @float2_Val = external hidden addrspace(2) global <2 x float>, align 8
// CHECK: @float3_Val = external hidden addrspace(2) global <3 x float>, align 16
// CHECK: @float4_Val = external hidden addrspace(2) global <4 x float>, align 16
// CHECK: @double2_Val = external hidden addrspace(2) global <2 x double>, align 16
// CHECK: @double3_Val = external hidden addrspace(2) global <3 x double>, align 32
// CHECK: @double4_Val = external hidden addrspace(2) global <4 x double>, align 32

#ifdef NAMESPACED
#define TYPE_DECL(T)  hlsl::T T##_Val
#else
#define TYPE_DECL(T)  T T##_Val
#endif

#ifdef __HLSL_ENABLE_16_BIT
TYPE_DECL(uint16_t);
TYPE_DECL(int16_t);
#endif

// unsigned 32-bit integer.
TYPE_DECL(uint);

// 64-bit integer.
TYPE_DECL(uint64_t);
TYPE_DECL(int64_t);

// built-in vector data types:

#ifdef __HLSL_ENABLE_16_BIT
TYPE_DECL(int16_t2   );
TYPE_DECL(int16_t3   );
TYPE_DECL(int16_t4   );
TYPE_DECL( uint16_t2 );
TYPE_DECL( uint16_t3 );
TYPE_DECL( uint16_t4 );
#endif

TYPE_DECL( int2  );
TYPE_DECL( int3  );
TYPE_DECL( int4  );
TYPE_DECL( uint2 );
TYPE_DECL( uint3 );
TYPE_DECL( uint4     );
TYPE_DECL( int64_t2  );
TYPE_DECL( int64_t3  );
TYPE_DECL( int64_t4  );
TYPE_DECL( uint64_t2 );
TYPE_DECL( uint64_t3 );
TYPE_DECL( uint64_t4 );

#ifdef __HLSL_ENABLE_16_BIT
TYPE_DECL(half2 );
TYPE_DECL(half3 );
TYPE_DECL(half4 );
#endif

TYPE_DECL( float2  );
TYPE_DECL( float3  );
TYPE_DECL( float4  );
TYPE_DECL( double2 );
TYPE_DECL( double3 );
TYPE_DECL( double4 );