2
2
// REQUIRES: amdgpu-registered-target
3
3
// RUN: %clang_cc1 -triple amdgcn-unknown-unknown -target-cpu verde -emit-llvm -o - %s | FileCheck %s
4
4
5
- typedef char i8 ;
6
- typedef short i16 ;
7
- typedef int i32 ;
8
- typedef int i64 __attribute__((ext_vector_type (2 )));
9
- typedef int i96 __attribute__((ext_vector_type (3 )));
10
- typedef int i128 __attribute__((ext_vector_type (4 )));
5
+ typedef unsigned char u8 ;
6
+ typedef unsigned short u16 ;
7
+ typedef unsigned int u32 ;
8
+ typedef unsigned int v2u32 __attribute__((ext_vector_type (2 )));
9
+ typedef unsigned int v3u32 __attribute__((ext_vector_type (3 )));
10
+ typedef unsigned int v4u32 __attribute__((ext_vector_type (4 )));
11
11
12
12
// CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b8(
13
13
// CHECK-NEXT: entry:
14
14
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
15
15
// CHECK-NEXT: ret void
16
16
//
17
- void test_amdgcn_raw_ptr_buffer_store_b8 (i8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
17
+ void test_amdgcn_raw_ptr_buffer_store_b8 (u8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
18
18
__builtin_amdgcn_raw_buffer_store_b8 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
19
19
}
20
20
@@ -23,7 +23,7 @@ void test_amdgcn_raw_ptr_buffer_store_b8(i8 vdata, __amdgpu_buffer_rsrc_t rsrc,
23
23
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
24
24
// CHECK-NEXT: ret void
25
25
//
26
- void test_amdgcn_raw_ptr_buffer_store_b16 (i16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
26
+ void test_amdgcn_raw_ptr_buffer_store_b16 (u16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
27
27
__builtin_amdgcn_raw_buffer_store_b16 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
28
28
}
29
29
@@ -32,7 +32,7 @@ void test_amdgcn_raw_ptr_buffer_store_b16(i16 vdata, __amdgpu_buffer_rsrc_t rsrc
32
32
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
33
33
// CHECK-NEXT: ret void
34
34
//
35
- void test_amdgcn_raw_ptr_buffer_store_b32 (i32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
35
+ void test_amdgcn_raw_ptr_buffer_store_b32 (u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
36
36
__builtin_amdgcn_raw_buffer_store_b32 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
37
37
}
38
38
@@ -41,7 +41,7 @@ void test_amdgcn_raw_ptr_buffer_store_b32(i32 vdata, __amdgpu_buffer_rsrc_t rsrc
41
41
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v2i32(<2 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
42
42
// CHECK-NEXT: ret void
43
43
//
44
- void test_amdgcn_raw_ptr_buffer_store_b64 (i64 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
44
+ void test_amdgcn_raw_ptr_buffer_store_b64 (v2u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
45
45
__builtin_amdgcn_raw_buffer_store_b64 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
46
46
}
47
47
@@ -50,7 +50,7 @@ void test_amdgcn_raw_ptr_buffer_store_b64(i64 vdata, __amdgpu_buffer_rsrc_t rsrc
50
50
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v3i32(<3 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
51
51
// CHECK-NEXT: ret void
52
52
//
53
- void test_amdgcn_raw_ptr_buffer_store_b96 (i96 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
53
+ void test_amdgcn_raw_ptr_buffer_store_b96 (v3u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
54
54
__builtin_amdgcn_raw_buffer_store_b96 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
55
55
}
56
56
@@ -59,7 +59,7 @@ void test_amdgcn_raw_ptr_buffer_store_b96(i96 vdata, __amdgpu_buffer_rsrc_t rsrc
59
59
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v4i32(<4 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0)
60
60
// CHECK-NEXT: ret void
61
61
//
62
- void test_amdgcn_raw_ptr_buffer_store_b128 (i128 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
62
+ void test_amdgcn_raw_ptr_buffer_store_b128 (v4u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
63
63
__builtin_amdgcn_raw_buffer_store_b128 (vdata , rsrc , /*offset=*/ 0 , /*soffset=*/ 0 , /*aux=*/ 0 );
64
64
}
65
65
@@ -68,7 +68,7 @@ void test_amdgcn_raw_ptr_buffer_store_b128(i128 vdata, __amdgpu_buffer_rsrc_t rs
68
68
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
69
69
// CHECK-NEXT: ret void
70
70
//
71
- void test_amdgcn_raw_ptr_buffer_store_b8_non_const_offset (i8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
71
+ void test_amdgcn_raw_ptr_buffer_store_b8_non_const_offset (u8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
72
72
__builtin_amdgcn_raw_buffer_store_b8 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
73
73
}
74
74
@@ -77,7 +77,7 @@ void test_amdgcn_raw_ptr_buffer_store_b8_non_const_offset(i8 vdata, __amdgpu_buf
77
77
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
78
78
// CHECK-NEXT: ret void
79
79
//
80
- void test_amdgcn_raw_ptr_buffer_store_b16_non_const_offset (i16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
80
+ void test_amdgcn_raw_ptr_buffer_store_b16_non_const_offset (u16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
81
81
__builtin_amdgcn_raw_buffer_store_b16 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
82
82
}
83
83
@@ -86,7 +86,7 @@ void test_amdgcn_raw_ptr_buffer_store_b16_non_const_offset(i16 vdata, __amdgpu_b
86
86
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
87
87
// CHECK-NEXT: ret void
88
88
//
89
- void test_amdgcn_raw_ptr_buffer_store_b32_non_const_offset (i32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
89
+ void test_amdgcn_raw_ptr_buffer_store_b32_non_const_offset (u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
90
90
__builtin_amdgcn_raw_buffer_store_b32 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
91
91
}
92
92
@@ -95,7 +95,7 @@ void test_amdgcn_raw_ptr_buffer_store_b32_non_const_offset(i32 vdata, __amdgpu_b
95
95
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v2i32(<2 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
96
96
// CHECK-NEXT: ret void
97
97
//
98
- void test_amdgcn_raw_ptr_buffer_store_b64_non_const_offset (i64 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
98
+ void test_amdgcn_raw_ptr_buffer_store_b64_non_const_offset (v2u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
99
99
__builtin_amdgcn_raw_buffer_store_b64 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
100
100
}
101
101
@@ -104,7 +104,7 @@ void test_amdgcn_raw_ptr_buffer_store_b64_non_const_offset(i64 vdata, __amdgpu_b
104
104
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v3i32(<3 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
105
105
// CHECK-NEXT: ret void
106
106
//
107
- void test_amdgcn_raw_ptr_buffer_store_b96_non_const_offset (i96 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
107
+ void test_amdgcn_raw_ptr_buffer_store_b96_non_const_offset (v3u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
108
108
__builtin_amdgcn_raw_buffer_store_b96 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
109
109
}
110
110
@@ -113,7 +113,7 @@ void test_amdgcn_raw_ptr_buffer_store_b96_non_const_offset(i96 vdata, __amdgpu_b
113
113
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v4i32(<4 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0)
114
114
// CHECK-NEXT: ret void
115
115
//
116
- void test_amdgcn_raw_ptr_buffer_store_b128_non_const_offset (i128 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
116
+ void test_amdgcn_raw_ptr_buffer_store_b128_non_const_offset (v4u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
117
117
__builtin_amdgcn_raw_buffer_store_b128 (vdata , rsrc , offset , /*soffset=*/ 0 , /*aux=*/ 0 );
118
118
}
119
119
@@ -122,7 +122,7 @@ void test_amdgcn_raw_ptr_buffer_store_b128_non_const_offset(i128 vdata, __amdgpu
122
122
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
123
123
// CHECK-NEXT: ret void
124
124
//
125
- void test_amdgcn_raw_ptr_buffer_store_b8_non_const_soffset (i8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
125
+ void test_amdgcn_raw_ptr_buffer_store_b8_non_const_soffset (u8 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
126
126
__builtin_amdgcn_raw_buffer_store_b8 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
127
127
}
128
128
@@ -131,7 +131,7 @@ void test_amdgcn_raw_ptr_buffer_store_b8_non_const_soffset(i8 vdata, __amdgpu_bu
131
131
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
132
132
// CHECK-NEXT: ret void
133
133
//
134
- void test_amdgcn_raw_ptr_buffer_store_b16_non_const_soffset (i16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
134
+ void test_amdgcn_raw_ptr_buffer_store_b16_non_const_soffset (u16 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
135
135
__builtin_amdgcn_raw_buffer_store_b16 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
136
136
}
137
137
@@ -140,7 +140,7 @@ void test_amdgcn_raw_ptr_buffer_store_b16_non_const_soffset(i16 vdata, __amdgpu_
140
140
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
141
141
// CHECK-NEXT: ret void
142
142
//
143
- void test_amdgcn_raw_ptr_buffer_store_b32_non_const_soffset (i32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
143
+ void test_amdgcn_raw_ptr_buffer_store_b32_non_const_soffset (u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
144
144
__builtin_amdgcn_raw_buffer_store_b32 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
145
145
}
146
146
@@ -149,7 +149,7 @@ void test_amdgcn_raw_ptr_buffer_store_b32_non_const_soffset(i32 vdata, __amdgpu_
149
149
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v2i32(<2 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
150
150
// CHECK-NEXT: ret void
151
151
//
152
- void test_amdgcn_raw_ptr_buffer_store_b64_non_const_soffset (i64 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
152
+ void test_amdgcn_raw_ptr_buffer_store_b64_non_const_soffset (v2u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
153
153
__builtin_amdgcn_raw_buffer_store_b64 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
154
154
}
155
155
@@ -158,7 +158,7 @@ void test_amdgcn_raw_ptr_buffer_store_b64_non_const_soffset(i64 vdata, __amdgpu_
158
158
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v3i32(<3 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
159
159
// CHECK-NEXT: ret void
160
160
//
161
- void test_amdgcn_raw_ptr_buffer_store_b96_non_const_soffset (i96 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
161
+ void test_amdgcn_raw_ptr_buffer_store_b96_non_const_soffset (v3u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
162
162
__builtin_amdgcn_raw_buffer_store_b96 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
163
163
}
164
164
@@ -167,6 +167,6 @@ void test_amdgcn_raw_ptr_buffer_store_b96_non_const_soffset(i96 vdata, __amdgpu_
167
167
// CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.v4i32(<4 x i32> [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0)
168
168
// CHECK-NEXT: ret void
169
169
//
170
- void test_amdgcn_raw_ptr_buffer_store_b128_non_const_soffset (i128 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
170
+ void test_amdgcn_raw_ptr_buffer_store_b128_non_const_soffset (v4u32 vdata , __amdgpu_buffer_rsrc_t rsrc , int offset , int soffset ) {
171
171
__builtin_amdgcn_raw_buffer_store_b128 (vdata , rsrc , /*offset=*/ 0 , soffset , /*aux=*/ 0 );
172
172
}
0 commit comments