@@ -76,6 +76,15 @@ func.func @gpu_gcn_raw_buffer_load_i32_oob_off(%buf: memref<64xi32>, %idx: i32)
7676 func.return %0 : i32
7777}
7878
79+ // CHECK-LABEL: func @gpu_gcn_raw_buffer_load_1xi32
80+ func.func @gpu_gcn_raw_buffer_load_1xi32 (%buf: memref <64 xi32 >, %idx: i32 ) -> vector <1 xi32 > {
81+ // CHECK: %[[ret:.*]] = rocdl.raw.ptr.buffer.load %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : i32
82+ // CHECK: %[[cast:.*]] = llvm.bitcast %[[ret]] : i32 to vector<1xi32>
83+ // CHECK: return %[[cast]]
84+ %0 = amdgpu.raw_buffer_load {boundsCheck = true } %buf [%idx ] : memref <64 xi32 >, i32 -> vector <1 xi32 >
85+ func.return %0 : vector <1 xi32 >
86+ }
87+
7988// CHECK-LABEL: func @gpu_gcn_raw_buffer_load_2xi32
8089func.func @gpu_gcn_raw_buffer_load_2xi32 (%buf: memref <64 xi32 >, %idx: i32 ) -> vector <2 xi32 > {
8190 // CHECK: %[[ret:.*]] = rocdl.raw.ptr.buffer.load %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : vector<2xi32>
@@ -159,6 +168,14 @@ func.func @gpu_gcn_raw_buffer_store_i32(%value: i32, %buf: memref<64xi32>, %idx:
159168 func.return
160169}
161170
171+ // CHECK-LABEL: func @gpu_gcn_raw_buffer_store_1xf32
172+ func.func @gpu_gcn_raw_buffer_store_1xf32 (%value: vector <1 xf32 >, %buf: memref <64 xf32 >, %idx: i32 ) {
173+ // CHECK: %[[cast:.*]] = llvm.bitcast %{{.*}} : vector<1xf32> to f32
174+ // CHECK: rocdl.raw.ptr.buffer.store %[[cast]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : f32
175+ amdgpu.raw_buffer_store {boundsCheck = true } %value -> %buf [%idx ] : vector <1 xf32 > -> memref <64 xf32 >, i32
176+ func.return
177+ }
178+
162179// CHECK-LABEL: func @gpu_gcn_raw_buffer_store_2xi8
163180func.func @gpu_gcn_raw_buffer_store_2xi8 (%value: vector <2 xi8 >, %buf: memref <64 xi8 >, %idx: i32 ) {
164181 // CHECK: %[[cast:.*]] = llvm.bitcast %{{.*}} : vector<2xi8> to i16
0 commit comments