File: use-indices.mlir

package info (click to toggle)
llvm-toolchain-20 1%3A20.1.8-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 2,111,388 kB
  • sloc: cpp: 7,438,767; ansic: 1,393,871; asm: 1,012,926; python: 241,728; f90: 86,635; objc: 75,411; lisp: 42,144; pascal: 17,286; sh: 10,027; ml: 5,082; perl: 4,730; awk: 3,523; makefile: 3,349; javascript: 2,251; xml: 892; fortran: 672
file content (28 lines) | stat: -rw-r--r-- 1,081 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
// RUN: mlir-opt -convert-scf-to-spirv %s -o - | FileCheck %s

// CHECK-LABEL: @forward
func.func @forward() {
  // CHECK: %[[LB:.*]] = spirv.Constant 0 : i32
  %c0 = arith.constant 0 : index
  // CHECK: %[[UB:.*]] = spirv.Constant 32 : i32
  %c32 = arith.constant 32 : index
  // CHECK: %[[STEP:.*]] = spirv.Constant 1 : i32
  %c1 = arith.constant 1 : index

  // CHECK:      spirv.mlir.loop {
  // CHECK-NEXT:   spirv.Branch ^[[HEADER:.*]](%[[LB]] : i32)
  // CHECK:      ^[[HEADER]](%[[INDVAR:.*]]: i32):
  // CHECK:        %[[CMP:.*]] = spirv.SLessThan %[[INDVAR]], %[[UB]] : i32
  // CHECK:        spirv.BranchConditional %[[CMP]], ^[[BODY:.*]], ^[[MERGE:.*]]
  // CHECK:      ^[[BODY]]:
  // CHECK:        %[[X:.*]] = spirv.IAdd %[[INDVAR]], %[[INDVAR]] : i32
  // CHECK:        %[[INDNEXT:.*]] = spirv.IAdd %[[INDVAR]], %[[STEP]] : i32
  // CHECK:        spirv.Branch ^[[HEADER]](%[[INDNEXT]] : i32)
  // CHECK:      ^[[MERGE]]:
  // CHECK:        spirv.mlir.merge
  // CHECK:      }
  scf.for %arg2 = %c0 to %c32 step %c1 {
      %1 = index.add %arg2, %arg2
  }
  return
}