brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 7a13419 Raw
53 lines · plain
1; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV2; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}3 4; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-SPIRV5; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %}6 7define spir_kernel void @test_two_switch_same_register(i32 %value) {8; CHECK-SPIRV:      OpSwitch %[[#REGISTER:]] %[[#DEFAULT1:]] 1 %[[#CASE1:]] 0 %[[#CASE2:]]9  switch i32 %value, label %default1 [10    i32 1, label %case111    i32 0, label %case212  ]13 14case1:15  br label %default116 17case2:18  br label %default119 20default1:21  switch i32 %value, label %default2 [22    i32 0, label %case323    i32 1, label %case424  ]25 26case3:27  br label %default228 29case4:30  br label %default231 32default2:33  ret void34 35; CHECK-SPIRV:      %[[#CASE2]] = OpLabel36; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT1]]37 38; CHECK-SPIRV:      %[[#CASE1]] = OpLabel39; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT1]]40 41; CHECK-SPIRV:      %[[#DEFAULT1]] = OpLabel42; CHECK-SPIRV-NEXT:      OpSwitch %[[#REGISTER]] %[[#DEFAULT2:]] 0 %[[#CASE3:]] 1 %[[#CASE4:]]43 44; CHECK-SPIRV:      %[[#CASE4]] = OpLabel45; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT2]]46 47; CHECK-SPIRV:      %[[#CASE3]] = OpLabel48; CHECK-SPIRV-NEXT: OpBranch %[[#DEFAULT2]]49 50; CHECK-SPIRV:      %[[#DEFAULT2]] = OpLabel51; CHECK-SPIRV-NEXT: OpReturn52}53