From 0f6ba14765bf19464a2d05fc02f596b9db6c7025 Mon Sep 17 00:00:00 2001 From: Julius Ikkala Date: Mon, 21 Apr 2025 19:48:29 +0300 Subject: Allow simplifying self-referential Phi parameters (#6870) --- tests/bugs/gh-6860.slang | 20 ++++++++++++++++++++ tests/bugs/gh-6862.slang | 29 +++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 tests/bugs/gh-6860.slang create mode 100644 tests/bugs/gh-6862.slang (limited to 'tests') diff --git a/tests/bugs/gh-6860.slang b/tests/bugs/gh-6860.slang new file mode 100644 index 000000000..13a7e329a --- /dev/null +++ b/tests/bugs/gh-6860.slang @@ -0,0 +1,20 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv +// CHECK: OpEntryPoint +func breaker()->float { + var x: float; + for (int i = 0; i < 1; ++i) { + if (true) { + } else { + x = 0.0; + } + } + return x; +} + +[shader("fragment")] +float4 fragment(float4 in: SV_Position) + : SV_Target +{ + let res = breaker(); + return float4(0, 0, 0, 0); +} diff --git a/tests/bugs/gh-6862.slang b/tests/bugs/gh-6862.slang new file mode 100644 index 000000000..8b65b2f2a --- /dev/null +++ b/tests/bugs/gh-6862.slang @@ -0,0 +1,29 @@ +//TEST:SIMPLE(filecheck=CHECK):-stage fragment -entry fragment -target wgsl + +func dummy(b: StructuredBuffer)->float { + return 0; +} + +func breaker(b: StructuredBuffer)->float { + // CHECK-NOT: var {{.*}} : array = {{.*}}; + var x: float = 0; + for (int i = 0; i < 1; ++i) { + x = dummy(b); + if (true) { + } else { + return 0; + x = 0; + } + } + return x; +} + +StructuredBuffer b; + +[shader("fragment")] +float4 fragment(float4 in: SV_Position) + : SV_Target +{ + let res = breaker(b); + return float4(res, 0, 0, 0); +} -- cgit v1.2.3