blob: 2ecdddcd71ff0f7c6b7ab4792b456ffe6b2ae5a4 [file]
; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
; This test checks that basic blocks are reordered in SPIR-V so that dominators
; are emitted ahead of their dominated blocks as required by the SPIR-V
; specification.
; CHECK-DAG: OpName %[[#ENTRY:]] "entry"
; CHECK-DAG: OpName %[[#FOR_BODY137_LR_PH:]] "for.body137.lr.ph"
; CHECK-DAG: OpName %[[#FOR_BODY:]] "for.body"
; CHECK: %[[#ENTRY]] = OpLabel
; CHECK: %[[#FOR_BODY]] = OpLabel
; CHECK: %[[#FOR_BODY137_LR_PH]] = OpLabel
define spir_kernel void @test(ptr addrspace(1) %arg, i1 %cond) {
entry:
br label %for.body
for.body137.lr.ph: ; preds = %for.body
ret void
for.body: ; preds = %for.body, %entry
br i1 %cond, label %for.body, label %for.body137.lr.ph
}