export const description = `Flow control tests for phony assignments.`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../gpu_test.js';import { runFlowControlTest } from './harness.js';export const g = makeTestGroup(AllFeaturesMaxLimitsGPUTest);g.test('phony_assign_call_basic').desc('Test flow control for a phony assigned with a single function call').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t, f => ({entrypoint: `${f.expect_order(0)}_ = f();${f.expect_order(2)}`,extra: `fn f() -> i32 {${f.expect_order(1)}return 1;}`,}));});g.test('phony_assign_call_must_use').desc('Test flow control for a phony assigned with a single function call annotated with @must_use').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t, f => ({entrypoint: `${f.expect_order(0)}_ = f();${f.expect_order(2)}`,extra: `@must_usefn f() -> i32 {${f.expect_order(1)}return 1;}`,}));});g.test('phony_assign_call_nested').desc('Test flow control for a phony assigned with nested function calls').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t, f => ({entrypoint: `${f.expect_order(0)}_ = c(a(), b());${f.expect_order(4)}`,extra: `fn a() -> i32 {${f.expect_order(1)}return 1;}fn b() -> i32 {${f.expect_order(2)}return 1;}fn c(x : i32, y : i32) -> i32 {${f.expect_order(3)}return x + y;}`,}));});g.test('phony_assign_call_nested_must_use').desc('Test flow control for a phony assigned with nested function calls, all annotated with @must_use').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t, f => ({entrypoint: `${f.expect_order(0)}_ = c(a(), b());${f.expect_order(4)}`,extra: `@must_usefn a() -> i32 {${f.expect_order(1)}return 1;}@must_usefn b() -> i32 {${f.expect_order(2)}return 1;}@must_usefn c(x : i32, y : i32) -> i32 {${f.expect_order(3)}return x + y;}`,}));});g.test('phony_assign_call_builtin').desc('Test flow control for a phony assigned with a builtin call, with two function calls as arguments').params(u => u.combine('preventValueOptimizations', [true, false])).fn(t => {runFlowControlTest(t, f => ({entrypoint: `${f.expect_order(0)}_ = max(a(), b());${f.expect_order(3)}`,extra: `fn a() -> i32 {${f.expect_order(1)}return 1;}fn b() -> i32 {${f.expect_order(2)}return 1;}`,}));});