xref: /llvm-project/mlir/test/Conversion/SPIRVToLLVM/spirv-types-to-llvm.mlir (revision 41f3b83fb066b4c3273e9abe02a8630864f22f30)
1// RUN: mlir-opt -split-input-file -convert-spirv-to-llvm -verify-diagnostics %s | FileCheck %s
2
3//===----------------------------------------------------------------------===//
4// Array type
5//===----------------------------------------------------------------------===//
6
7// CHECK-LABEL: @array(!llvm.array<16 x f32>, !llvm.array<32 x vector<4xf32>>)
8spirv.func @array(!spirv.array<16 x f32>, !spirv.array< 32 x vector<4xf32> >) "None"
9
10// CHECK-LABEL: @array_with_natural_stride(!llvm.array<16 x f32>)
11spirv.func @array_with_natural_stride(!spirv.array<16 x f32, stride=4>) "None"
12
13//===----------------------------------------------------------------------===//
14// Pointer type
15//===----------------------------------------------------------------------===//
16
17// CHECK-LABEL: @pointer_scalar(!llvm.ptr, !llvm.ptr)
18spirv.func @pointer_scalar(!spirv.ptr<i1, Uniform>, !spirv.ptr<f32, Private>) "None"
19
20// CHECK-LABEL: @pointer_vector(!llvm.ptr)
21spirv.func @pointer_vector(!spirv.ptr<vector<4xi32>, Function>) "None"
22
23//===----------------------------------------------------------------------===//
24// Runtime array type
25//===----------------------------------------------------------------------===//
26
27// CHECK-LABEL: @runtime_array_vector(!llvm.array<0 x vector<4xf32>>)
28spirv.func @runtime_array_vector(!spirv.rtarray< vector<4xf32> >) "None"
29
30// CHECK-LABEL: @runtime_array_scalar(!llvm.array<0 x f32>)
31spirv.func @runtime_array_scalar(!spirv.rtarray<f32>) "None"
32
33//===----------------------------------------------------------------------===//
34// Struct type
35//===----------------------------------------------------------------------===//
36
37// CHECK-LABEL: @struct(!llvm.struct<packed (f64)>)
38spirv.func @struct(!spirv.struct<(f64)>) "None"
39
40// CHECK-LABEL: @struct_nested(!llvm.struct<packed (i32, struct<packed (i64, i32)>)>)
41spirv.func @struct_nested(!spirv.struct<(i32, !spirv.struct<(i64, i32)>)>) "None"
42
43// CHECK-LABEL: @struct_with_natural_offset(!llvm.struct<(i8, i32)>)
44spirv.func @struct_with_natural_offset(!spirv.struct<(i8[0], i32[4])>) "None"
45