File: basic.mlir

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (87 lines) | stat: -rw-r--r-- 2,271 bytes parent folder | download | duplicates (12)
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
// RUN: mlir-opt -test-spirv-module-combiner -split-input-file -verify-diagnostics %s | FileCheck %s

// Combine modules without the same symbols

// CHECK:      module {
// CHECK-NEXT:   spirv.module Logical GLSL450 {
// CHECK-NEXT:     spirv.SpecConstant @m1_sc
// CHECK-NEXT:     spirv.GlobalVariable @m1_gv bind(1, 0)
// CHECK-NEXT:     spirv.func @no_op
// CHECK-NEXT:       spirv.Return
// CHECK-NEXT:     }
// CHECK-NEXT:     spirv.EntryPoint "GLCompute" @no_op
// CHECK-NEXT:     spirv.ExecutionMode @no_op "LocalSize", 32, 1, 1

// CHECK-NEXT:     spirv.SpecConstant @m2_sc
// CHECK-NEXT:     spirv.GlobalVariable @m2_gv bind(0, 1)
// CHECK-NEXT:     spirv.func @variable_init_spec_constant
// CHECK-NEXT:       spirv.mlir.referenceof @m2_sc
// CHECK-NEXT:       spirv.Variable init
// CHECK-NEXT:       spirv.Return
// CHECK-NEXT:     }
// CHECK-NEXT:   }
// CHECK-NEXT: }

module {
spirv.module Logical GLSL450 {
  spirv.SpecConstant @m1_sc = 42.42 : f32
  spirv.GlobalVariable @m1_gv bind(1, 0): !spirv.ptr<f32, Input>
  spirv.func @no_op() -> () "None" {
    spirv.Return
  }
  spirv.EntryPoint "GLCompute" @no_op
  spirv.ExecutionMode @no_op "LocalSize", 32, 1, 1
}

spirv.module Logical GLSL450 {
  spirv.SpecConstant @m2_sc = 42 : i32
  spirv.GlobalVariable @m2_gv bind(0, 1): !spirv.ptr<f32, Input>
  spirv.func @variable_init_spec_constant() -> () "None" {
    %0 = spirv.mlir.referenceof @m2_sc : i32
    %1 = spirv.Variable init(%0) : !spirv.ptr<i32, Function>
    spirv.Return
  }
}
}

// -----

module {
spirv.module Physical64 GLSL450 {
}

// expected-error @+1 {{input modules differ in addressing model, memory model, and/or VCE triple}}
spirv.module Logical GLSL450 {
}
}

// -----

module {
spirv.module Logical Simple {
}

// expected-error @+1 {{input modules differ in addressing model, memory model, and/or VCE triple}}
spirv.module Logical GLSL450 {
}
}

// -----

module {
spirv.module Logical GLSL450 {
}

// expected-error @+1 {{input modules differ in addressing model, memory model, and/or VCE triple}}
spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], [SPV_KHR_storage_buffer_storage_class]> {
}
}

// -----

// No spir-v modules to combine.
module {
  func.func @foo(%arg0: i32) -> i32 {
    return %arg0 : i32
  }
}