xref: /llvm-project/llvm/test/CodeGen/SPIRV/switch-no-jump-table.ll (revision 6cca23a3b91e12c0b6639449bc1e5eb564067db3)
1; The test is to check that jump tables are not generated from switch
2
3; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s
4; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
5
6; CHECK: OpSwitch %[[#]] %[[Label:]]
7; CHECK-4: OpBranch %[[Label]]
8
9target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
10target triple = "spir64-unknown-unknown"
11
12define spir_func void @foo(i32 noundef %val) {
13entry:
14  switch i32 %val, label %sw.epilog [
15    i32 0, label %sw.bb
16    i32 1, label %sw.bb2
17    i32 2, label %sw.bb3
18    i32 3, label %sw.bb4
19  ]
20sw.bb:
21  br label %sw.epilog
22sw.bb2:
23  br label %sw.epilog
24sw.bb3:
25  br label %sw.epilog
26sw.bb4:
27  br label %sw.epilog
28sw.epilog:
29  ret void
30}
31