tint: delete e2e tests that fail because Tint detects infinite loops
Bug: tint:1521 Change-Id: I9ae9af0b3799e3be1c2cb083e9f2ae5752b63b58 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88362 Reviewed-by: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
b52c8a4758
commit
98685f34a5
|
@ -1,54 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_Back.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %20 None
|
|
||||||
OpBranchConditional %5 %20 %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,20 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,20 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,20 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,20 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Continue_AfterHeader_Conditional.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %50 None
|
|
||||||
OpBranchConditional %true %40 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranchConditional %false %80 %80
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if true
|
|
||||||
var_1 = 3u ;
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 5u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,66 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Continue_AfterHeader_Conditional_EmptyContinuing.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %50 None
|
|
||||||
OpBranchConditional %true %40 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranchConditional %false %80 %80
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if true
|
|
||||||
var_1 = 3u ;
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,60 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Continue_AfterHeader_Unconditional.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpBranchConditional %5 %80 %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,25 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,25 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,25 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,25 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,57 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Continue_FromHeader.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranchConditional %5 %80 %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,24 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,24 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,24 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,24 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,70 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Fallthrough_OnFalse.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %79 None
|
|
||||||
OpSwitch %uint_42 %79 40 %40 50 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_40
|
|
||||||
OpBranchConditional %5 %80 %50
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_50
|
|
||||||
OpBranch %79
|
|
||||||
%79 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,40 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,40 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,40 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
switch 42u
|
|
||||||
case 40u
|
|
||||||
var_1 = 40u ;
|
|
||||||
if false
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
fallthrough ;
|
|
||||||
|
|
||||||
case 50u
|
|
||||||
var_1 = 50u ;
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 3u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,40 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,70 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Fallthrough_OnTrue.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %79 None
|
|
||||||
OpSwitch %uint_42 %79 40 %40 50 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_40
|
|
||||||
OpBranchConditional %5 %50 %80
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_50
|
|
||||||
OpBranch %79
|
|
||||||
%79 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,41 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,41 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,41 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
switch 42u
|
|
||||||
case 40u
|
|
||||||
var_1 = 40u ;
|
|
||||||
if false
|
|
||||||
else
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
fallthrough ;
|
|
||||||
|
|
||||||
case 50u
|
|
||||||
var_1 = 50u ;
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 3u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,41 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fallthrough;
|
|
||||||
}
|
|
||||||
case 50u: {
|
|
||||||
var_1 = 50u;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,63 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Forward_OnFalse.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpBranchConditional %5 %80 %40
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,29 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,29 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,29 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if false
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
var_1 = 3u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,29 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,63 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_Forward_OnTrue.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpBranchConditional %5 %40 %80
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if false
|
|
||||||
else
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
var_1 = 3u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,30 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 3u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 4u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_IfBreak_OnFalse.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %50 None
|
|
||||||
OpBranchConditional %true %40 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranchConditional %false %80 %50
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,32 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,32 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,32 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if true
|
|
||||||
var_1 = 3u ;
|
|
||||||
if false
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 5u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,32 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_Continue_IfBreak_OnTrue.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_0
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpSelectionMerge %50 None
|
|
||||||
OpBranchConditional %true %40 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranchConditional %false %50 %80
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,33 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,33 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,33 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 0u ;
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
var_1 = 2u ;
|
|
||||||
if true
|
|
||||||
var_1 = 3u ;
|
|
||||||
if false
|
|
||||||
else
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 4u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 5u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,33 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 0u;
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
var_1 = 2u;
|
|
||||||
if (true) {
|
|
||||||
var_1 = 3u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 4u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 5u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_LoopContinue_FromSwitch.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpSelectionMerge %79 None
|
|
||||||
OpSwitch %uint_42 %79 40 %40
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_4
|
|
||||||
OpBranchConditional %true %80 %80
|
|
||||||
%79 = OpLabel
|
|
||||||
OpStore %var %uint_5
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_7
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 4u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 6u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 7u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,34 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 4u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 6u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 7u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,34 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 4u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 6u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 7u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,34 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 1u ;
|
|
||||||
loop
|
|
||||||
var_1 = 2u ;
|
|
||||||
var_1 = 3u ;
|
|
||||||
switch 42u
|
|
||||||
case 40u
|
|
||||||
var_1 = 4u ;
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 5u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 6u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 7u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,34 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 4u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 5u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 6u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 7u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Continue_OnFalse.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpSelectionMerge %79 None
|
|
||||||
OpSwitch %uint_42 %79 40 %40
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_40
|
|
||||||
OpBranchConditional %5 %79 %80
|
|
||||||
%79 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_7
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_8
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,37 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,37 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,37 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 1u ;
|
|
||||||
loop
|
|
||||||
var_1 = 2u ;
|
|
||||||
var_1 = 3u ;
|
|
||||||
switch 42u
|
|
||||||
case 40u
|
|
||||||
var_1 = 40u ;
|
|
||||||
if false
|
|
||||||
else
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 7u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 8u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,37 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,67 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Continue_OnTrue.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpSelectionMerge %79 None
|
|
||||||
OpSwitch %uint_42 %79 40 %40
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_40
|
|
||||||
OpBranchConditional %5 %80 %79
|
|
||||||
%79 = OpLabel
|
|
||||||
OpStore %var %uint_6
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_7
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpStore %var %uint_8
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,36 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,36 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,36 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
var_1 = 1u ;
|
|
||||||
loop
|
|
||||||
var_1 = 2u ;
|
|
||||||
var_1 = 3u ;
|
|
||||||
switch 42u
|
|
||||||
case 40u
|
|
||||||
var_1 = 40u ;
|
|
||||||
if false
|
|
||||||
continue ;
|
|
||||||
|
|
||||||
|
|
||||||
default
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 6u ;
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 7u ;
|
|
||||||
|
|
||||||
|
|
||||||
var_1 = 8u ;
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,36 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
var_1 = 1u;
|
|
||||||
loop {
|
|
||||||
var_1 = 2u;
|
|
||||||
var_1 = 3u;
|
|
||||||
switch(42u) {
|
|
||||||
case 40u: {
|
|
||||||
var_1 = 40u;
|
|
||||||
if (false) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 6u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 7u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var_1 = 8u;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,54 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_Branch_BackEdge_MultiBlockLoop.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,21 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,21 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,21 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
loop
|
|
||||||
|
|
||||||
continuing
|
|
||||||
var_1 = 1u ;
|
|
||||||
|
|
||||||
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,21 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,52 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_Branch_BackEdge_SingleBlockLoop.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpLoopMerge %99 %20 None
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,18 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,18 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,18 +0,0 @@
|
||||||
SKIP FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var private var_1 u32 ;
|
|
||||||
|
|
||||||
fn main_1
|
|
||||||
loop
|
|
||||||
var_1 = 1u ;
|
|
||||||
|
|
||||||
return ;
|
|
||||||
|
|
||||||
|
|
||||||
stage fragment
|
|
||||||
fn main
|
|
||||||
main_1 ;
|
|
||||||
|
|
||||||
|
|
||||||
error loop does not exit
|
|
|
@ -1,18 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
var_1 = 1u;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,63 +0,0 @@
|
||||||
; Test: SpvParserCFGTest_EmitBody_Branch_LoopContinue_BeforeLast.spvasm
|
|
||||||
; SPIR-V
|
|
||||||
; Version: 1.0
|
|
||||||
; Generator: Khronos SPIR-V Tools Assembler; 0
|
|
||||||
; Bound: 1000
|
|
||||||
; Schema: 0
|
|
||||||
OpCapability Shader
|
|
||||||
OpMemoryModel Logical Simple
|
|
||||||
OpEntryPoint Fragment %100 "main"
|
|
||||||
OpExecutionMode %100 OriginUpperLeft
|
|
||||||
OpName %var "var"
|
|
||||||
%void = OpTypeVoid
|
|
||||||
%3 = OpTypeFunction %void
|
|
||||||
%bool = OpTypeBool
|
|
||||||
%5 = OpConstantNull %bool
|
|
||||||
%true = OpConstantTrue %bool
|
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%int = OpTypeInt 32 1
|
|
||||||
%uint_42 = OpConstant %uint 42
|
|
||||||
%int_42 = OpConstant %int 42
|
|
||||||
%13 = OpTypeFunction %uint
|
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%uint_2 = OpConstant %uint 2
|
|
||||||
%uint_3 = OpConstant %uint 3
|
|
||||||
%uint_4 = OpConstant %uint 4
|
|
||||||
%uint_5 = OpConstant %uint 5
|
|
||||||
%uint_6 = OpConstant %uint 6
|
|
||||||
%uint_7 = OpConstant %uint 7
|
|
||||||
%uint_8 = OpConstant %uint 8
|
|
||||||
%uint_10 = OpConstant %uint 10
|
|
||||||
%uint_20 = OpConstant %uint 20
|
|
||||||
%uint_30 = OpConstant %uint 30
|
|
||||||
%uint_40 = OpConstant %uint 40
|
|
||||||
%uint_50 = OpConstant %uint 50
|
|
||||||
%uint_90 = OpConstant %uint 90
|
|
||||||
%uint_99 = OpConstant %uint 99
|
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
|
||||||
%var = OpVariable %_ptr_Private_uint Private
|
|
||||||
%uint_999 = OpConstant %uint 999
|
|
||||||
%100 = OpFunction %void None %3
|
|
||||||
%10 = OpLabel
|
|
||||||
OpBranch %20
|
|
||||||
%20 = OpLabel
|
|
||||||
OpLoopMerge %99 %80 None
|
|
||||||
OpBranch %30
|
|
||||||
%30 = OpLabel
|
|
||||||
OpSelectionMerge %50 None
|
|
||||||
OpBranchConditional %5 %40 %50
|
|
||||||
%40 = OpLabel
|
|
||||||
OpStore %var %uint_1
|
|
||||||
OpBranch %80
|
|
||||||
%50 = OpLabel
|
|
||||||
OpStore %var %uint_2
|
|
||||||
OpBranch %80
|
|
||||||
%80 = OpLabel
|
|
||||||
OpStore %var %uint_3
|
|
||||||
OpBranch %20
|
|
||||||
%99 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
OpFunctionEnd
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
if (false) {
|
|
||||||
var_1 = 1u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 3u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
if (false) {
|
|
||||||
var_1 = 1u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 3u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
|
@ -1,26 +0,0 @@
|
||||||
SKIP: FAILED
|
|
||||||
|
|
||||||
|
|
||||||
var<private> var_1 : u32;
|
|
||||||
|
|
||||||
fn main_1() {
|
|
||||||
loop {
|
|
||||||
if (false) {
|
|
||||||
var_1 = 1u;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var_1 = 2u;
|
|
||||||
|
|
||||||
continuing {
|
|
||||||
var_1 = 3u;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@stage(fragment)
|
|
||||||
fn main() {
|
|
||||||
main_1();
|
|
||||||
}
|
|
||||||
|
|
||||||
error: loop does not exit
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue