| // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py |
| // REQUIRES: amdgpu-registered-target |
| // RUN: %clang_cc1 -triple amdgcn-unknown-unknown -target-cpu verde -emit-llvm -o - %s | FileCheck %s |
| |
| typedef char i8; |
| typedef short i16; |
| typedef int i32; |
| typedef int i64 __attribute__((ext_vector_type(2))); |
| typedef int i96 __attribute__((ext_vector_type(3))); |
| typedef int i128 __attribute__((ext_vector_type(4))); |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b8( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b8(i8 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b8(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b16( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b16(i16 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b16(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b32( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b32(i32 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b32(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b64( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b64(i64 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b64(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b96( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b96(i96 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b96(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b128( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b128(i128 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b128(vdata, rsrc, /*offset=*/0, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b8_non_const_offset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b8_non_const_offset(i8 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b8(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b16_non_const_offset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b16_non_const_offset(i16 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b16(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b32_non_const_offset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 [[OFFSET:%.*]], i32 0, i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b32_non_const_offset(i32 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b32(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b64_non_const_offset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b64_non_const_offset(i64 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b64(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b96_non_const_offset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b96_non_const_offset(i96 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b96(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b128_non_const_offset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b128_non_const_offset(i128 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b128(vdata, rsrc, offset, /*soffset=*/0, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b8_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i8(i8 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b8_non_const_soffset(i8 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b8(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b16_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i16(i16 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b16_non_const_soffset(i16 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b16(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b32_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // CHECK-NEXT: tail call void @llvm.amdgcn.raw.ptr.buffer.store.i32(i32 [[VDATA:%.*]], ptr addrspace(8) [[RSRC:%.*]], i32 0, i32 [[SOFFSET:%.*]], i32 0) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b32_non_const_soffset(i32 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b32(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b64_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b64_non_const_soffset(i64 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b64(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b96_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b96_non_const_soffset(i96 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b96(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |
| |
| // CHECK-LABEL: @test_amdgcn_raw_ptr_buffer_store_b128_non_const_soffset( |
| // CHECK-NEXT: entry: |
| // 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) |
| // CHECK-NEXT: ret void |
| // |
| void test_amdgcn_raw_ptr_buffer_store_b128_non_const_soffset(i128 vdata, __amdgpu_buffer_rsrc_t rsrc, int offset, int soffset) { |
| __builtin_amdgcn_raw_buffer_store_b128(vdata, rsrc, /*offset=*/0, soffset, /*aux=*/0); |
| } |