AMDGPU: Fix verifier assert with out of bounds subregister indexes (#119799)
[llvm-project.git] / mlir / test / Conversion / SCFToSPIRV / use-indices.mlir
blob68a825fbd93ebde0cd5625e6516cf7383b218a9a
1 // RUN: mlir-opt -convert-scf-to-spirv %s -o - | FileCheck %s
3 // CHECK-LABEL: @forward
4 func.func @forward() {
5   // CHECK: %[[LB:.*]] = spirv.Constant 0 : i32
6   %c0 = arith.constant 0 : index
7   // CHECK: %[[UB:.*]] = spirv.Constant 32 : i32
8   %c32 = arith.constant 32 : index
9   // CHECK: %[[STEP:.*]] = spirv.Constant 1 : i32
10   %c1 = arith.constant 1 : index
12   // CHECK:      spirv.mlir.loop {
13   // CHECK-NEXT:   spirv.Branch ^[[HEADER:.*]](%[[LB]] : i32)
14   // CHECK:      ^[[HEADER]](%[[INDVAR:.*]]: i32):
15   // CHECK:        %[[CMP:.*]] = spirv.SLessThan %[[INDVAR]], %[[UB]] : i32
16   // CHECK:        spirv.BranchConditional %[[CMP]], ^[[BODY:.*]], ^[[MERGE:.*]]
17   // CHECK:      ^[[BODY]]:
18   // CHECK:        %[[X:.*]] = spirv.IAdd %[[INDVAR]], %[[INDVAR]] : i32
19   // CHECK:        %[[INDNEXT:.*]] = spirv.IAdd %[[INDVAR]], %[[STEP]] : i32
20   // CHECK:        spirv.Branch ^[[HEADER]](%[[INDNEXT]] : i32)
21   // CHECK:      ^[[MERGE]]:
22   // CHECK:        spirv.mlir.merge
23   // CHECK:      }
24   scf.for %arg2 = %c0 to %c32 step %c1 {
25       %1 = index.add %arg2, %arg2
26   }
27   return