Enable various switch tests in ES2 mode.
switch is no longer an ES3-specific feature. Change-Id: Ic878a77268e517e17699c2e35a37da6b0a7765dd Bug: skia:12450 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452320 Auto-Submit: John Stiles <johnstiles@google.com> Commit-Queue: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
This commit is contained in:
parent
9d74c28e82
commit
ffe365eb4d
@ -952,6 +952,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) {
|
||||
|
||||
if b.gpu("Tegra3") {
|
||||
// Tegra3 fails to compile break stmts inside a for loop (skia:12477)
|
||||
skip("_", "tests", "_", "SkSLReturnsValueOnEveryPathES2_GPU")
|
||||
skip("_", "tests", "_", "SkSLSwitch_GPU")
|
||||
skip("_", "tests", "_", "SkSLSwitchDefaultOnly_GPU")
|
||||
skip("_", "tests", "_", "SkSLSwitchWithFallthrough_GPU")
|
||||
|
@ -36460,7 +36460,7 @@
|
||||
"skia/infra/bots/run_recipe.py",
|
||||
"${ISOLATED_OUTDIR}",
|
||||
"test",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Debug\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Debug-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"skia"
|
||||
],
|
||||
"dependencies": [
|
||||
@ -36559,7 +36559,7 @@
|
||||
"skia/infra/bots/run_recipe.py",
|
||||
"${ISOLATED_OUTDIR}",
|
||||
"test",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"{\"$kitchen\":{\"devshell\":true,\"git_auth\":true},\"buildbucket_build_id\":\"<(BUILDBUCKET_BUILD_ID)\",\"buildername\":\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\",\"dm_flags\":\"[\\\"dm\\\",\\\"--nameByHash\\\",\\\"--key\\\",\\\"arch\\\",\\\"arm\\\",\\\"compiler\\\",\\\"Clang\\\",\\\"configuration\\\",\\\"Release\\\",\\\"cpu_or_gpu\\\",\\\"GPU\\\",\\\"cpu_or_gpu_value\\\",\\\"Tegra3\\\",\\\"extra_config\\\",\\\"Android\\\",\\\"model\\\",\\\"Nexus7\\\",\\\"os\\\",\\\"Android\\\",\\\"style\\\",\\\"default\\\",\\\"--threads\\\",\\\"0\\\",\\\"--nocpu\\\",\\\"--config\\\",\\\"gles\\\",\\\"glesdft\\\",\\\"srgb-gles\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"srgb-gles\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".pef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".srw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ARW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".CR2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".DNG\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".NRW\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".ORF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RAF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".RW2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".PEF\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".SRW\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLReturnsValueOnEveryPathES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitch_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchDefaultOnly_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithFallthrough_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLSwitchWithLoops_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopFloat_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLLoopInt_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES2_GPU\\\",\\\"_\\\",\\\"tests\\\",\\\"_\\\",\\\"SkSLMatrixConstructorsES3_GPU\\\",\\\"--nonativeFonts\\\",\\\"--verbose\\\"]\",\"dm_properties\":\"{\\\"buildbucket_build_id\\\":\\\"<(BUILDBUCKET_BUILD_ID)\\\",\\\"builder\\\":\\\"Test-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-All-Android\\\",\\\"gitHash\\\":\\\"<(REVISION)\\\",\\\"issue\\\":\\\"<(ISSUE)\\\",\\\"patch_storage\\\":\\\"<(PATCH_STORAGE)\\\",\\\"patchset\\\":\\\"<(PATCHSET)\\\",\\\"swarming_bot_id\\\":\\\"${SWARMING_BOT_ID}\\\",\\\"swarming_task_id\\\":\\\"${SWARMING_TASK_ID}\\\",\\\"task_id\\\":\\\"<(TASK_ID)\\\"}\",\"do_upload\":\"true\",\"gold_hashes_url\":\"https://gold.skia.org/json/v1/hashes\",\"gs_bucket\":\"skia-infra-gm\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
|
||||
"skia"
|
||||
],
|
||||
"dependencies": [
|
||||
|
@ -37,11 +37,77 @@ bool if_else_chain() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool switch_with_all_returns() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: return true;
|
||||
case 2: return true;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_only_default() {
|
||||
switch (int(unknownInput)) {
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_fallthrough() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: return true;
|
||||
case 2:
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_fallthrough_twice() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_break_in_loop() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: for (int x=0; x<=10; ++x) { break; }
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_continue_in_loop() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: for (int x=0; x<=10; ++x) { continue; }
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_if_that_returns() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: if (unknownInput == 123) return true; else return true;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_one_sided_if_then_fallthrough() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: if (unknownInput == 123) return true;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
half4 main(float2 coords) {
|
||||
return simple() &&
|
||||
return_on_both_sides() &&
|
||||
for_inside_body() &&
|
||||
after_for_body() &&
|
||||
for_with_double_sided_conditional_return() &&
|
||||
if_else_chain() ? colorGreen : colorRed;
|
||||
if_else_chain() &&
|
||||
switch_with_all_returns() &&
|
||||
switch_only_default() &&
|
||||
switch_fallthrough() &&
|
||||
switch_fallthrough_twice() &&
|
||||
switch_with_break_in_loop() &&
|
||||
switch_with_continue_in_loop() &&
|
||||
switch_with_if_that_returns() &&
|
||||
switch_with_one_sided_if_then_fallthrough() ? colorGreen : colorRed;
|
||||
}
|
||||
|
@ -34,69 +34,10 @@ bool after_while_loop() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool switch_with_all_returns() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: return true;
|
||||
case 2: return false;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_fallthrough() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: return true;
|
||||
case 2:
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_fallthrough_twice() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_break_in_loop() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: for (int x=0; x<=10; ++x) { break; }
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_continue_in_loop() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: for (int x=0; x<=10; ++x) { continue; }
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_if_that_returns() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: if (unknownInput == 123) return false; else return true;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool switch_with_one_sided_if_then_fallthrough() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1: if (unknownInput == 123) return false;
|
||||
default: return true;
|
||||
}
|
||||
}
|
||||
|
||||
half4 main(float2 coords) {
|
||||
return inside_while_loop() &&
|
||||
inside_infinite_do_loop() &&
|
||||
inside_infinite_while_loop() &&
|
||||
after_do_loop() &&
|
||||
after_while_loop() &&
|
||||
switch_with_all_returns() &&
|
||||
switch_fallthrough() &&
|
||||
switch_fallthrough_twice() &&
|
||||
switch_with_break_in_loop() &&
|
||||
switch_with_continue_in_loop() &&
|
||||
switch_with_if_that_returns() &&
|
||||
switch_with_one_sided_if_then_fallthrough() ? colorGreen : colorRed;
|
||||
after_while_loop() ? colorGreen : colorRed;
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ SKSL_TEST(SkSLInlineWithUnnecessaryBlocks, "inliner/InlineWithUnnecessary
|
||||
SKSL_TEST(SkSLNoInline, "inliner/NoInline.sksl")
|
||||
SKSL_TEST(SkSLShortCircuitEvaluationsCannotInlineRightHandSide,
|
||||
"inliner/ShortCircuitEvaluationsCannotInlineRightHandSide.sksl")
|
||||
SKSL_TEST_ES3(SkSLStaticSwitchInline, "inliner/StaticSwitch.sksl")
|
||||
SKSL_TEST(SkSLStaticSwitchInline, "inliner/StaticSwitch.sksl")
|
||||
SKSL_TEST(SkSLStructsCanBeInlinedSafely, "inliner/StructsCanBeInlinedSafely.sksl")
|
||||
SKSL_TEST(SkSLSwizzleCanBeInlinedDirectly, "inliner/SwizzleCanBeInlinedDirectly.sksl")
|
||||
SKSL_TEST(SkSLTernaryResultsCannotBeInlined, "inliner/TernaryResultsCannotBeInlined.sksl")
|
||||
@ -353,7 +353,7 @@ SKSL_TEST(SkSLScopedSymbol, "shared/ScopedSymbol.sksl")
|
||||
SKSL_TEST_ES3(SkSLScalarConversionConstructorsES3, "shared/ScalarConversionConstructorsES3.sksl")
|
||||
SKSL_TEST(SkSLStackingVectorCasts, "shared/StackingVectorCasts.sksl")
|
||||
SKSL_TEST(SkSLStaticIf, "shared/StaticIf.sksl")
|
||||
SKSL_TEST_ES3(SkSLStaticSwitch, "shared/StaticSwitch.sksl")
|
||||
SKSL_TEST(SkSLStaticSwitch, "shared/StaticSwitch.sksl")
|
||||
SKSL_TEST(SkSLStructArrayFollowedByScalar, "shared/StructArrayFollowedByScalar.sksl")
|
||||
SKSL_TEST(SkSLStructsInFunctions, "shared/StructsInFunctions.sksl")
|
||||
SKSL_TEST(SkSLSwitch, "shared/Switch.sksl")
|
||||
|
@ -18,6 +18,16 @@ OpName %x_0 "x"
|
||||
OpName %for_with_double_sided_conditional_return_b "for_with_double_sided_conditional_return_b"
|
||||
OpName %x_1 "x"
|
||||
OpName %if_else_chain_b "if_else_chain_b"
|
||||
OpName %switch_with_all_returns_b "switch_with_all_returns_b"
|
||||
OpName %switch_only_default_b "switch_only_default_b"
|
||||
OpName %switch_fallthrough_b "switch_fallthrough_b"
|
||||
OpName %switch_fallthrough_twice_b "switch_fallthrough_twice_b"
|
||||
OpName %switch_with_break_in_loop_b "switch_with_break_in_loop_b"
|
||||
OpName %x_2 "x"
|
||||
OpName %switch_with_continue_in_loop_b "switch_with_continue_in_loop_b"
|
||||
OpName %x_3 "x"
|
||||
OpName %switch_with_if_that_returns_b "switch_with_if_that_returns_b"
|
||||
OpName %switch_with_one_sided_if_then_fallthrough_b "switch_with_one_sided_if_then_fallthrough_b"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -30,17 +40,27 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 2 Offset 32
|
||||
OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %15 Binding 0
|
||||
OpDecorate %15 DescriptorSet 0
|
||||
OpDecorate %34 RelaxedPrecision
|
||||
OpDecorate %77 RelaxedPrecision
|
||||
OpDecorate %86 RelaxedPrecision
|
||||
OpDecorate %92 RelaxedPrecision
|
||||
OpDecorate %23 Binding 0
|
||||
OpDecorate %23 DescriptorSet 0
|
||||
OpDecorate %42 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %94 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
OpDecorate %107 RelaxedPrecision
|
||||
OpDecorate %143 RelaxedPrecision
|
||||
OpDecorate %108 RelaxedPrecision
|
||||
OpDecorate %115 RelaxedPrecision
|
||||
OpDecorate %123 RelaxedPrecision
|
||||
OpDecorate %131 RelaxedPrecision
|
||||
OpDecorate %137 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %146 RelaxedPrecision
|
||||
OpDecorate %153 RelaxedPrecision
|
||||
OpDecorate %170 RelaxedPrecision
|
||||
OpDecorate %187 RelaxedPrecision
|
||||
OpDecorate %193 RelaxedPrecision
|
||||
OpDecorate %201 RelaxedPrecision
|
||||
OpDecorate %207 RelaxedPrecision
|
||||
OpDecorate %273 RelaxedPrecision
|
||||
OpDecorate %275 RelaxedPrecision
|
||||
OpDecorate %276 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -50,14 +70,14 @@ OpDecorate %146 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float %float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%23 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%void = OpTypeVoid
|
||||
%20 = OpTypeFunction %void
|
||||
%28 = OpTypeFunction %void
|
||||
%v2float = OpTypeVector %float 2
|
||||
%float_0 = OpConstant %float 0
|
||||
%24 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%32 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%28 = OpTypeFunction %bool
|
||||
%36 = OpTypeFunction %bool
|
||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
@ -71,203 +91,430 @@ OpDecorate %146 RelaxedPrecision
|
||||
%false = OpConstantFalse %bool
|
||||
%float_3 = OpConstant %float 3
|
||||
%float_4 = OpConstant %float 4
|
||||
%113 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%float_123 = OpConstant %float 123
|
||||
%211 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%_entrypoint_v = OpFunction %void None %20
|
||||
%21 = OpLabel
|
||||
%25 = OpVariable %_ptr_Function_v2float Function
|
||||
OpStore %25 %24
|
||||
%27 = OpFunctionCall %v4float %main %25
|
||||
OpStore %sk_FragColor %27
|
||||
%_entrypoint_v = OpFunction %void None %28
|
||||
%29 = OpLabel
|
||||
%33 = OpVariable %_ptr_Function_v2float Function
|
||||
OpStore %33 %32
|
||||
%35 = OpFunctionCall %v4float %main %33
|
||||
OpStore %sk_FragColor %35
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%return_on_both_sides_b = OpFunction %bool None %28
|
||||
%29 = OpLabel
|
||||
%30 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%34 = OpLoad %float %30
|
||||
%36 = OpFOrdEqual %bool %34 %float_1
|
||||
OpSelectionMerge %39 None
|
||||
OpBranchConditional %36 %37 %38
|
||||
%return_on_both_sides_b = OpFunction %bool None %36
|
||||
%37 = OpLabel
|
||||
%38 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%42 = OpLoad %float %38
|
||||
%44 = OpFOrdEqual %bool %42 %float_1
|
||||
OpSelectionMerge %47 None
|
||||
OpBranchConditional %44 %45 %46
|
||||
%45 = OpLabel
|
||||
OpReturnValue %true
|
||||
%38 = OpLabel
|
||||
%46 = OpLabel
|
||||
OpReturnValue %true
|
||||
%39 = OpLabel
|
||||
%47 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%for_inside_body_b = OpFunction %bool None %28
|
||||
%41 = OpLabel
|
||||
%for_inside_body_b = OpFunction %bool None %36
|
||||
%49 = OpLabel
|
||||
%x = OpVariable %_ptr_Function_int Function
|
||||
OpStore %x %int_0
|
||||
OpBranch %45
|
||||
%45 = OpLabel
|
||||
OpLoopMerge %49 %48 None
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
%50 = OpLoad %int %x
|
||||
%52 = OpSLessThanEqual %bool %50 %int_10
|
||||
OpBranchConditional %52 %47 %49
|
||||
%47 = OpLabel
|
||||
OpBranch %53
|
||||
%53 = OpLabel
|
||||
OpLoopMerge %57 %56 None
|
||||
OpBranch %54
|
||||
%54 = OpLabel
|
||||
%58 = OpLoad %int %x
|
||||
%60 = OpSLessThanEqual %bool %58 %int_10
|
||||
OpBranchConditional %60 %55 %57
|
||||
%55 = OpLabel
|
||||
OpReturnValue %true
|
||||
%48 = OpLabel
|
||||
%54 = OpLoad %int %x
|
||||
%55 = OpIAdd %int %54 %int_1
|
||||
OpStore %x %55
|
||||
OpBranch %45
|
||||
%49 = OpLabel
|
||||
%56 = OpLabel
|
||||
%62 = OpLoad %int %x
|
||||
%63 = OpIAdd %int %62 %int_1
|
||||
OpStore %x %63
|
||||
OpBranch %53
|
||||
%57 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%after_for_body_b = OpFunction %bool None %28
|
||||
%56 = OpLabel
|
||||
%after_for_body_b = OpFunction %bool None %36
|
||||
%64 = OpLabel
|
||||
%x_0 = OpVariable %_ptr_Function_int Function
|
||||
OpStore %x_0 %int_0
|
||||
OpBranch %58
|
||||
%58 = OpLabel
|
||||
OpLoopMerge %62 %61 None
|
||||
OpBranch %59
|
||||
%59 = OpLabel
|
||||
%63 = OpLoad %int %x_0
|
||||
%64 = OpSLessThanEqual %bool %63 %int_10
|
||||
OpBranchConditional %64 %60 %62
|
||||
%60 = OpLabel
|
||||
OpBranch %61
|
||||
%61 = OpLabel
|
||||
%65 = OpLoad %int %x_0
|
||||
%66 = OpIAdd %int %65 %int_1
|
||||
OpStore %x_0 %66
|
||||
OpBranch %58
|
||||
%62 = OpLabel
|
||||
OpReturnValue %true
|
||||
OpFunctionEnd
|
||||
%for_with_double_sided_conditional_return_b = OpFunction %bool None %28
|
||||
OpBranch %66
|
||||
%66 = OpLabel
|
||||
OpLoopMerge %70 %69 None
|
||||
OpBranch %67
|
||||
%67 = OpLabel
|
||||
%x_1 = OpVariable %_ptr_Function_int Function
|
||||
OpStore %x_1 %int_0
|
||||
%71 = OpLoad %int %x_0
|
||||
%72 = OpSLessThanEqual %bool %71 %int_10
|
||||
OpBranchConditional %72 %68 %70
|
||||
%68 = OpLabel
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
OpLoopMerge %73 %72 None
|
||||
OpBranch %70
|
||||
%73 = OpLoad %int %x_0
|
||||
%74 = OpIAdd %int %73 %int_1
|
||||
OpStore %x_0 %74
|
||||
OpBranch %66
|
||||
%70 = OpLabel
|
||||
%74 = OpLoad %int %x_1
|
||||
%75 = OpSLessThanEqual %bool %74 %int_10
|
||||
OpBranchConditional %75 %71 %73
|
||||
%71 = OpLabel
|
||||
%76 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%77 = OpLoad %float %76
|
||||
%78 = OpFOrdEqual %bool %77 %float_1
|
||||
OpSelectionMerge %81 None
|
||||
OpBranchConditional %78 %79 %80
|
||||
%79 = OpLabel
|
||||
OpReturnValue %true
|
||||
%80 = OpLabel
|
||||
OpReturnValue %true
|
||||
%81 = OpLabel
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
%82 = OpLoad %int %x_1
|
||||
%83 = OpIAdd %int %82 %int_1
|
||||
OpStore %x_1 %83
|
||||
OpBranch %69
|
||||
%73 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%if_else_chain_b = OpFunction %bool None %28
|
||||
%84 = OpLabel
|
||||
%85 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%86 = OpLoad %float %85
|
||||
%87 = OpFOrdEqual %bool %86 %float_1
|
||||
OpSelectionMerge %90 None
|
||||
OpBranchConditional %87 %88 %89
|
||||
%for_with_double_sided_conditional_return_b = OpFunction %bool None %36
|
||||
%75 = OpLabel
|
||||
%x_1 = OpVariable %_ptr_Function_int Function
|
||||
OpStore %x_1 %int_0
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
OpLoopMerge %81 %80 None
|
||||
OpBranch %78
|
||||
%78 = OpLabel
|
||||
%82 = OpLoad %int %x_1
|
||||
%83 = OpSLessThanEqual %bool %82 %int_10
|
||||
OpBranchConditional %83 %79 %81
|
||||
%79 = OpLabel
|
||||
%84 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%85 = OpLoad %float %84
|
||||
%86 = OpFOrdEqual %bool %85 %float_1
|
||||
OpSelectionMerge %89 None
|
||||
OpBranchConditional %86 %87 %88
|
||||
%87 = OpLabel
|
||||
OpReturnValue %true
|
||||
%88 = OpLabel
|
||||
OpReturnValue %true
|
||||
%89 = OpLabel
|
||||
%91 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%92 = OpLoad %float %91
|
||||
%94 = OpFOrdEqual %bool %92 %float_2
|
||||
OpSelectionMerge %97 None
|
||||
OpBranchConditional %94 %95 %96
|
||||
%95 = OpLabel
|
||||
OpReturnValue %false
|
||||
OpBranch %80
|
||||
%80 = OpLabel
|
||||
%90 = OpLoad %int %x_1
|
||||
%91 = OpIAdd %int %90 %int_1
|
||||
OpStore %x_1 %91
|
||||
OpBranch %77
|
||||
%81 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%if_else_chain_b = OpFunction %bool None %36
|
||||
%92 = OpLabel
|
||||
%93 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%94 = OpLoad %float %93
|
||||
%95 = OpFOrdEqual %bool %94 %float_1
|
||||
OpSelectionMerge %98 None
|
||||
OpBranchConditional %95 %96 %97
|
||||
%96 = OpLabel
|
||||
%99 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
OpReturnValue %true
|
||||
%97 = OpLabel
|
||||
%99 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%100 = OpLoad %float %99
|
||||
%102 = OpFOrdEqual %bool %100 %float_3
|
||||
%102 = OpFOrdEqual %bool %100 %float_2
|
||||
OpSelectionMerge %105 None
|
||||
OpBranchConditional %102 %103 %104
|
||||
%103 = OpLabel
|
||||
OpReturnValue %true
|
||||
%104 = OpLabel
|
||||
%106 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%107 = OpLoad %float %106
|
||||
%109 = OpFOrdEqual %bool %107 %float_4
|
||||
OpSelectionMerge %112 None
|
||||
OpBranchConditional %109 %110 %111
|
||||
%110 = OpLabel
|
||||
OpReturnValue %false
|
||||
%104 = OpLabel
|
||||
%107 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%108 = OpLoad %float %107
|
||||
%110 = OpFOrdEqual %bool %108 %float_3
|
||||
OpSelectionMerge %113 None
|
||||
OpBranchConditional %110 %111 %112
|
||||
%111 = OpLabel
|
||||
OpReturnValue %true
|
||||
%112 = OpLabel
|
||||
%114 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%115 = OpLoad %float %114
|
||||
%117 = OpFOrdEqual %bool %115 %float_4
|
||||
OpSelectionMerge %120 None
|
||||
OpBranchConditional %117 %118 %119
|
||||
%118 = OpLabel
|
||||
OpReturnValue %false
|
||||
%119 = OpLabel
|
||||
OpReturnValue %true
|
||||
%120 = OpLabel
|
||||
OpBranch %113
|
||||
%113 = OpLabel
|
||||
OpBranch %105
|
||||
%105 = OpLabel
|
||||
OpBranch %97
|
||||
%97 = OpLabel
|
||||
OpBranch %90
|
||||
%90 = OpLabel
|
||||
OpBranch %98
|
||||
%98 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %v4float None %113
|
||||
%114 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%115 = OpLabel
|
||||
%136 = OpVariable %_ptr_Function_v4float Function
|
||||
OpSelectionMerge %117 None
|
||||
OpBranchConditional %true %116 %117
|
||||
%116 = OpLabel
|
||||
%118 = OpFunctionCall %bool %return_on_both_sides_b
|
||||
OpBranch %117
|
||||
%117 = OpLabel
|
||||
%119 = OpPhi %bool %false %115 %118 %116
|
||||
OpSelectionMerge %121 None
|
||||
OpBranchConditional %119 %120 %121
|
||||
%120 = OpLabel
|
||||
%122 = OpFunctionCall %bool %for_inside_body_b
|
||||
OpBranch %121
|
||||
%switch_with_all_returns_b = OpFunction %bool None %36
|
||||
%121 = OpLabel
|
||||
%123 = OpPhi %bool %false %117 %122 %120
|
||||
%122 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%123 = OpLoad %float %122
|
||||
%124 = OpConvertFToS %int %123
|
||||
OpSelectionMerge %125 None
|
||||
OpBranchConditional %123 %124 %125
|
||||
%124 = OpLabel
|
||||
%126 = OpFunctionCall %bool %after_for_body_b
|
||||
OpBranch %125
|
||||
%125 = OpLabel
|
||||
%127 = OpPhi %bool %false %121 %126 %124
|
||||
OpSelectionMerge %129 None
|
||||
OpBranchConditional %127 %128 %129
|
||||
OpSwitch %124 %128 1 %126 2 %127
|
||||
%126 = OpLabel
|
||||
OpReturnValue %true
|
||||
%127 = OpLabel
|
||||
OpReturnValue %true
|
||||
%128 = OpLabel
|
||||
%130 = OpFunctionCall %bool %for_with_double_sided_conditional_return_b
|
||||
OpBranch %129
|
||||
%129 = OpLabel
|
||||
%131 = OpPhi %bool %false %125 %130 %128
|
||||
OpSelectionMerge %133 None
|
||||
OpBranchConditional %131 %132 %133
|
||||
%132 = OpLabel
|
||||
%134 = OpFunctionCall %bool %if_else_chain_b
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
%135 = OpPhi %bool %false %129 %134 %132
|
||||
OpSelectionMerge %140 None
|
||||
OpBranchConditional %135 %138 %139
|
||||
%138 = OpLabel
|
||||
%141 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
|
||||
%143 = OpLoad %v4float %141
|
||||
OpStore %136 %143
|
||||
OpBranch %140
|
||||
%139 = OpLabel
|
||||
%144 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
|
||||
%145 = OpLoad %v4float %144
|
||||
OpStore %136 %145
|
||||
OpBranch %140
|
||||
%140 = OpLabel
|
||||
%146 = OpLoad %v4float %136
|
||||
OpReturnValue %146
|
||||
OpReturnValue %true
|
||||
%125 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_only_default_b = OpFunction %bool None %36
|
||||
%129 = OpLabel
|
||||
%130 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%131 = OpLoad %float %130
|
||||
%132 = OpConvertFToS %int %131
|
||||
OpSelectionMerge %133 None
|
||||
OpSwitch %132 %134
|
||||
%134 = OpLabel
|
||||
OpReturnValue %true
|
||||
%133 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_fallthrough_b = OpFunction %bool None %36
|
||||
%135 = OpLabel
|
||||
%136 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%137 = OpLoad %float %136
|
||||
%138 = OpConvertFToS %int %137
|
||||
OpSelectionMerge %139 None
|
||||
OpSwitch %138 %142 1 %140 2 %141
|
||||
%140 = OpLabel
|
||||
OpReturnValue %true
|
||||
%141 = OpLabel
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
OpReturnValue %true
|
||||
%139 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_fallthrough_twice_b = OpFunction %bool None %36
|
||||
%143 = OpLabel
|
||||
%144 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%145 = OpLoad %float %144
|
||||
%146 = OpConvertFToS %int %145
|
||||
OpSelectionMerge %147 None
|
||||
OpSwitch %146 %150 1 %148 2 %149
|
||||
%148 = OpLabel
|
||||
OpBranch %149
|
||||
%149 = OpLabel
|
||||
OpBranch %150
|
||||
%150 = OpLabel
|
||||
OpReturnValue %true
|
||||
%147 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_break_in_loop_b = OpFunction %bool None %36
|
||||
%151 = OpLabel
|
||||
%x_2 = OpVariable %_ptr_Function_int Function
|
||||
%152 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%153 = OpLoad %float %152
|
||||
%154 = OpConvertFToS %int %153
|
||||
OpSelectionMerge %155 None
|
||||
OpSwitch %154 %157 1 %156
|
||||
%156 = OpLabel
|
||||
OpStore %x_2 %int_0
|
||||
OpBranch %159
|
||||
%159 = OpLabel
|
||||
OpLoopMerge %163 %162 None
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
%164 = OpLoad %int %x_2
|
||||
%165 = OpSLessThanEqual %bool %164 %int_10
|
||||
OpBranchConditional %165 %161 %163
|
||||
%161 = OpLabel
|
||||
OpBranch %163
|
||||
%162 = OpLabel
|
||||
%166 = OpLoad %int %x_2
|
||||
%167 = OpIAdd %int %166 %int_1
|
||||
OpStore %x_2 %167
|
||||
OpBranch %159
|
||||
%163 = OpLabel
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
OpReturnValue %true
|
||||
%155 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_continue_in_loop_b = OpFunction %bool None %36
|
||||
%168 = OpLabel
|
||||
%x_3 = OpVariable %_ptr_Function_int Function
|
||||
%169 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%170 = OpLoad %float %169
|
||||
%171 = OpConvertFToS %int %170
|
||||
OpSelectionMerge %172 None
|
||||
OpSwitch %171 %174 1 %173
|
||||
%173 = OpLabel
|
||||
OpStore %x_3 %int_0
|
||||
OpBranch %176
|
||||
%176 = OpLabel
|
||||
OpLoopMerge %180 %179 None
|
||||
OpBranch %177
|
||||
%177 = OpLabel
|
||||
%181 = OpLoad %int %x_3
|
||||
%182 = OpSLessThanEqual %bool %181 %int_10
|
||||
OpBranchConditional %182 %178 %180
|
||||
%178 = OpLabel
|
||||
OpBranch %179
|
||||
%179 = OpLabel
|
||||
%183 = OpLoad %int %x_3
|
||||
%184 = OpIAdd %int %183 %int_1
|
||||
OpStore %x_3 %184
|
||||
OpBranch %176
|
||||
%180 = OpLabel
|
||||
OpBranch %174
|
||||
%174 = OpLabel
|
||||
OpReturnValue %true
|
||||
%172 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_if_that_returns_b = OpFunction %bool None %36
|
||||
%185 = OpLabel
|
||||
%186 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%187 = OpLoad %float %186
|
||||
%188 = OpConvertFToS %int %187
|
||||
OpSelectionMerge %189 None
|
||||
OpSwitch %188 %191 1 %190
|
||||
%190 = OpLabel
|
||||
%192 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%193 = OpLoad %float %192
|
||||
%195 = OpFOrdEqual %bool %193 %float_123
|
||||
OpSelectionMerge %198 None
|
||||
OpBranchConditional %195 %196 %197
|
||||
%196 = OpLabel
|
||||
OpReturnValue %true
|
||||
%197 = OpLabel
|
||||
OpReturnValue %true
|
||||
%198 = OpLabel
|
||||
OpBranch %191
|
||||
%191 = OpLabel
|
||||
OpReturnValue %true
|
||||
%189 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_one_sided_if_then_fallthrough_b = OpFunction %bool None %36
|
||||
%199 = OpLabel
|
||||
%200 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%201 = OpLoad %float %200
|
||||
%202 = OpConvertFToS %int %201
|
||||
OpSelectionMerge %203 None
|
||||
OpSwitch %202 %205 1 %204
|
||||
%204 = OpLabel
|
||||
%206 = OpAccessChain %_ptr_Uniform_float %23 %int_2
|
||||
%207 = OpLoad %float %206
|
||||
%208 = OpFOrdEqual %bool %207 %float_123
|
||||
OpSelectionMerge %210 None
|
||||
OpBranchConditional %208 %209 %210
|
||||
%209 = OpLabel
|
||||
OpReturnValue %true
|
||||
%210 = OpLabel
|
||||
OpBranch %205
|
||||
%205 = OpLabel
|
||||
OpReturnValue %true
|
||||
%203 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %v4float None %211
|
||||
%212 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%213 = OpLabel
|
||||
%266 = OpVariable %_ptr_Function_v4float Function
|
||||
OpSelectionMerge %215 None
|
||||
OpBranchConditional %true %214 %215
|
||||
%214 = OpLabel
|
||||
%216 = OpFunctionCall %bool %return_on_both_sides_b
|
||||
OpBranch %215
|
||||
%215 = OpLabel
|
||||
%217 = OpPhi %bool %false %213 %216 %214
|
||||
OpSelectionMerge %219 None
|
||||
OpBranchConditional %217 %218 %219
|
||||
%218 = OpLabel
|
||||
%220 = OpFunctionCall %bool %for_inside_body_b
|
||||
OpBranch %219
|
||||
%219 = OpLabel
|
||||
%221 = OpPhi %bool %false %215 %220 %218
|
||||
OpSelectionMerge %223 None
|
||||
OpBranchConditional %221 %222 %223
|
||||
%222 = OpLabel
|
||||
%224 = OpFunctionCall %bool %after_for_body_b
|
||||
OpBranch %223
|
||||
%223 = OpLabel
|
||||
%225 = OpPhi %bool %false %219 %224 %222
|
||||
OpSelectionMerge %227 None
|
||||
OpBranchConditional %225 %226 %227
|
||||
%226 = OpLabel
|
||||
%228 = OpFunctionCall %bool %for_with_double_sided_conditional_return_b
|
||||
OpBranch %227
|
||||
%227 = OpLabel
|
||||
%229 = OpPhi %bool %false %223 %228 %226
|
||||
OpSelectionMerge %231 None
|
||||
OpBranchConditional %229 %230 %231
|
||||
%230 = OpLabel
|
||||
%232 = OpFunctionCall %bool %if_else_chain_b
|
||||
OpBranch %231
|
||||
%231 = OpLabel
|
||||
%233 = OpPhi %bool %false %227 %232 %230
|
||||
OpSelectionMerge %235 None
|
||||
OpBranchConditional %233 %234 %235
|
||||
%234 = OpLabel
|
||||
%236 = OpFunctionCall %bool %switch_with_all_returns_b
|
||||
OpBranch %235
|
||||
%235 = OpLabel
|
||||
%237 = OpPhi %bool %false %231 %236 %234
|
||||
OpSelectionMerge %239 None
|
||||
OpBranchConditional %237 %238 %239
|
||||
%238 = OpLabel
|
||||
%240 = OpFunctionCall %bool %switch_only_default_b
|
||||
OpBranch %239
|
||||
%239 = OpLabel
|
||||
%241 = OpPhi %bool %false %235 %240 %238
|
||||
OpSelectionMerge %243 None
|
||||
OpBranchConditional %241 %242 %243
|
||||
%242 = OpLabel
|
||||
%244 = OpFunctionCall %bool %switch_fallthrough_b
|
||||
OpBranch %243
|
||||
%243 = OpLabel
|
||||
%245 = OpPhi %bool %false %239 %244 %242
|
||||
OpSelectionMerge %247 None
|
||||
OpBranchConditional %245 %246 %247
|
||||
%246 = OpLabel
|
||||
%248 = OpFunctionCall %bool %switch_fallthrough_twice_b
|
||||
OpBranch %247
|
||||
%247 = OpLabel
|
||||
%249 = OpPhi %bool %false %243 %248 %246
|
||||
OpSelectionMerge %251 None
|
||||
OpBranchConditional %249 %250 %251
|
||||
%250 = OpLabel
|
||||
%252 = OpFunctionCall %bool %switch_with_break_in_loop_b
|
||||
OpBranch %251
|
||||
%251 = OpLabel
|
||||
%253 = OpPhi %bool %false %247 %252 %250
|
||||
OpSelectionMerge %255 None
|
||||
OpBranchConditional %253 %254 %255
|
||||
%254 = OpLabel
|
||||
%256 = OpFunctionCall %bool %switch_with_continue_in_loop_b
|
||||
OpBranch %255
|
||||
%255 = OpLabel
|
||||
%257 = OpPhi %bool %false %251 %256 %254
|
||||
OpSelectionMerge %259 None
|
||||
OpBranchConditional %257 %258 %259
|
||||
%258 = OpLabel
|
||||
%260 = OpFunctionCall %bool %switch_with_if_that_returns_b
|
||||
OpBranch %259
|
||||
%259 = OpLabel
|
||||
%261 = OpPhi %bool %false %255 %260 %258
|
||||
OpSelectionMerge %263 None
|
||||
OpBranchConditional %261 %262 %263
|
||||
%262 = OpLabel
|
||||
%264 = OpFunctionCall %bool %switch_with_one_sided_if_then_fallthrough_b
|
||||
OpBranch %263
|
||||
%263 = OpLabel
|
||||
%265 = OpPhi %bool %false %259 %264 %262
|
||||
OpSelectionMerge %270 None
|
||||
OpBranchConditional %265 %268 %269
|
||||
%268 = OpLabel
|
||||
%271 = OpAccessChain %_ptr_Uniform_v4float %23 %int_0
|
||||
%273 = OpLoad %v4float %271
|
||||
OpStore %266 %273
|
||||
OpBranch %270
|
||||
%269 = OpLabel
|
||||
%274 = OpAccessChain %_ptr_Uniform_v4float %23 %int_1
|
||||
%275 = OpLoad %v4float %274
|
||||
OpStore %266 %275
|
||||
OpBranch %270
|
||||
%270 = OpLabel
|
||||
%276 = OpLoad %v4float %266
|
||||
OpReturnValue %276
|
||||
OpFunctionEnd
|
||||
|
@ -25,6 +25,76 @@ bool for_with_double_sided_conditional_return_b() {
|
||||
bool if_else_chain_b() {
|
||||
if (unknownInput == 1.0) return true; else if (unknownInput == 2.0) return false; else if (unknownInput == 3.0) return true; else if (unknownInput == 4.0) return false; else return true;
|
||||
}
|
||||
vec4 main() {
|
||||
return ((((true && return_on_both_sides_b()) && for_inside_body_b()) && after_for_body_b()) && for_with_double_sided_conditional_return_b()) && if_else_chain_b() ? colorGreen : colorRed;
|
||||
bool switch_with_all_returns_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_only_default_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 0:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_twice_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_break_in_loop_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_continue_in_loop_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_if_that_returns_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
if (unknownInput == 123.0) return true; else return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_one_sided_if_then_fallthrough_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
if (unknownInput == 123.0) return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
vec4 main() {
|
||||
return ((((((((((((true && return_on_both_sides_b()) && for_inside_body_b()) && after_for_body_b()) && for_with_double_sided_conditional_return_b()) && if_else_chain_b()) && switch_with_all_returns_b()) && switch_only_default_b()) && switch_fallthrough_b()) && switch_fallthrough_twice_b()) && switch_with_break_in_loop_b()) && switch_with_continue_in_loop_b()) && switch_with_if_that_returns_b()) && switch_with_one_sided_if_then_fallthrough_b() ? colorGreen : colorRed;
|
||||
}
|
||||
|
@ -33,9 +33,78 @@ bool for_with_double_sided_conditional_return_b(Uniforms _uniforms) {
|
||||
bool if_else_chain_b(Uniforms _uniforms) {
|
||||
if (_uniforms.unknownInput == 1.0h) return true; else if (_uniforms.unknownInput == 2.0h) return false; else if (_uniforms.unknownInput == 3.0h) return true; else if (_uniforms.unknownInput == 4.0h) return false; else return true;
|
||||
}
|
||||
bool switch_with_all_returns_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_only_default_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_twice_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_break_in_loop_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_continue_in_loop_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_if_that_returns_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
if (_uniforms.unknownInput == 123.0h) return true; else return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_one_sided_if_then_fallthrough_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
if (_uniforms.unknownInput == 123.0h) return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
(void)_out;
|
||||
_out.sk_FragColor = ((((true && return_on_both_sides_b(_uniforms)) && for_inside_body_b()) && after_for_body_b()) && for_with_double_sided_conditional_return_b(_uniforms)) && if_else_chain_b(_uniforms) ? _uniforms.colorGreen : _uniforms.colorRed;
|
||||
_out.sk_FragColor = ((((((((((((true && return_on_both_sides_b(_uniforms)) && for_inside_body_b()) && after_for_body_b()) && for_with_double_sided_conditional_return_b(_uniforms)) && if_else_chain_b(_uniforms)) && switch_with_all_returns_b(_uniforms)) && switch_only_default_b(_uniforms)) && switch_fallthrough_b(_uniforms)) && switch_fallthrough_twice_b(_uniforms)) && switch_with_break_in_loop_b(_uniforms)) && switch_with_continue_in_loop_b(_uniforms)) && switch_with_if_that_returns_b(_uniforms)) && switch_with_one_sided_if_then_fallthrough_b(_uniforms) ? _uniforms.colorGreen : _uniforms.colorRed;
|
||||
return _out;
|
||||
}
|
||||
|
@ -15,15 +15,6 @@ OpName %inside_infinite_do_loop_b "inside_infinite_do_loop_b"
|
||||
OpName %inside_infinite_while_loop_b "inside_infinite_while_loop_b"
|
||||
OpName %after_do_loop_b "after_do_loop_b"
|
||||
OpName %after_while_loop_b "after_while_loop_b"
|
||||
OpName %switch_with_all_returns_b "switch_with_all_returns_b"
|
||||
OpName %switch_fallthrough_b "switch_fallthrough_b"
|
||||
OpName %switch_fallthrough_twice_b "switch_fallthrough_twice_b"
|
||||
OpName %switch_with_break_in_loop_b "switch_with_break_in_loop_b"
|
||||
OpName %x "x"
|
||||
OpName %switch_with_continue_in_loop_b "switch_with_continue_in_loop_b"
|
||||
OpName %x_0 "x"
|
||||
OpName %switch_with_if_that_returns_b "switch_with_if_that_returns_b"
|
||||
OpName %switch_with_one_sided_if_then_fallthrough_b "switch_with_one_sided_if_then_fallthrough_b"
|
||||
OpName %main "main"
|
||||
OpDecorate %sk_FragColor RelaxedPrecision
|
||||
OpDecorate %sk_FragColor Location 0
|
||||
@ -36,21 +27,12 @@ OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
|
||||
OpMemberDecorate %_UniformBuffer 2 Offset 32
|
||||
OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
|
||||
OpDecorate %_UniformBuffer Block
|
||||
OpDecorate %22 Binding 0
|
||||
OpDecorate %22 DescriptorSet 0
|
||||
OpDecorate %46 RelaxedPrecision
|
||||
OpDecorate %77 RelaxedPrecision
|
||||
OpDecorate %85 RelaxedPrecision
|
||||
OpDecorate %93 RelaxedPrecision
|
||||
OpDecorate %101 RelaxedPrecision
|
||||
OpDecorate %122 RelaxedPrecision
|
||||
OpDecorate %139 RelaxedPrecision
|
||||
OpDecorate %145 RelaxedPrecision
|
||||
OpDecorate %152 RelaxedPrecision
|
||||
OpDecorate %158 RelaxedPrecision
|
||||
OpDecorate %217 RelaxedPrecision
|
||||
OpDecorate %219 RelaxedPrecision
|
||||
OpDecorate %220 RelaxedPrecision
|
||||
OpDecorate %15 Binding 0
|
||||
OpDecorate %15 DescriptorSet 0
|
||||
OpDecorate %39 RelaxedPrecision
|
||||
OpDecorate %96 RelaxedPrecision
|
||||
OpDecorate %99 RelaxedPrecision
|
||||
OpDecorate %100 RelaxedPrecision
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
@ -60,366 +42,157 @@ OpDecorate %220 RelaxedPrecision
|
||||
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
||||
%_UniformBuffer = OpTypeStruct %v4float %v4float %float
|
||||
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
||||
%22 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
||||
%void = OpTypeVoid
|
||||
%27 = OpTypeFunction %void
|
||||
%20 = OpTypeFunction %void
|
||||
%v2float = OpTypeVector %float 2
|
||||
%float_0 = OpConstant %float 0
|
||||
%31 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%24 = OpConstantComposite %v2float %float_0 %float_0
|
||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||
%35 = OpTypeFunction %bool
|
||||
%28 = OpTypeFunction %bool
|
||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||
%int = OpTypeInt 32 1
|
||||
%int_2 = OpConstant %int 2
|
||||
%float_123 = OpConstant %float 123
|
||||
%false = OpConstantFalse %bool
|
||||
%true = OpConstantTrue %bool
|
||||
%_ptr_Function_int = OpTypePointer Function %int
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_10 = OpConstant %int 10
|
||||
%int_1 = OpConstant %int 1
|
||||
%162 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%68 = OpTypeFunction %v4float %_ptr_Function_v2float
|
||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||
%_entrypoint_v = OpFunction %void None %27
|
||||
%28 = OpLabel
|
||||
%32 = OpVariable %_ptr_Function_v2float Function
|
||||
OpStore %32 %31
|
||||
%34 = OpFunctionCall %v4float %main %32
|
||||
OpStore %sk_FragColor %34
|
||||
%int_0 = OpConstant %int 0
|
||||
%int_1 = OpConstant %int 1
|
||||
%_entrypoint_v = OpFunction %void None %20
|
||||
%21 = OpLabel
|
||||
%25 = OpVariable %_ptr_Function_v2float Function
|
||||
OpStore %25 %24
|
||||
%27 = OpFunctionCall %v4float %main %25
|
||||
OpStore %sk_FragColor %27
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%inside_while_loop_b = OpFunction %bool None %35
|
||||
%36 = OpLabel
|
||||
OpBranch %37
|
||||
%37 = OpLabel
|
||||
OpLoopMerge %41 %40 None
|
||||
OpBranch %38
|
||||
%38 = OpLabel
|
||||
%42 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%46 = OpLoad %float %42
|
||||
%48 = OpFOrdEqual %bool %46 %float_123
|
||||
OpBranchConditional %48 %39 %41
|
||||
%39 = OpLabel
|
||||
%inside_while_loop_b = OpFunction %bool None %28
|
||||
%29 = OpLabel
|
||||
OpBranch %30
|
||||
%30 = OpLabel
|
||||
OpLoopMerge %34 %33 None
|
||||
OpBranch %31
|
||||
%31 = OpLabel
|
||||
%35 = OpAccessChain %_ptr_Uniform_float %15 %int_2
|
||||
%39 = OpLoad %float %35
|
||||
%41 = OpFOrdEqual %bool %39 %float_123
|
||||
OpBranchConditional %41 %32 %34
|
||||
%32 = OpLabel
|
||||
OpReturnValue %false
|
||||
%40 = OpLabel
|
||||
OpBranch %37
|
||||
%41 = OpLabel
|
||||
%33 = OpLabel
|
||||
OpBranch %30
|
||||
%34 = OpLabel
|
||||
OpReturnValue %true
|
||||
OpFunctionEnd
|
||||
%inside_infinite_do_loop_b = OpFunction %bool None %35
|
||||
%inside_infinite_do_loop_b = OpFunction %bool None %28
|
||||
%44 = OpLabel
|
||||
OpBranch %45
|
||||
%45 = OpLabel
|
||||
OpLoopMerge %49 %48 None
|
||||
OpBranch %46
|
||||
%46 = OpLabel
|
||||
OpReturnValue %true
|
||||
%47 = OpLabel
|
||||
OpBranch %48
|
||||
%48 = OpLabel
|
||||
OpBranchConditional %true %45 %49
|
||||
%49 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%inside_infinite_while_loop_b = OpFunction %bool None %28
|
||||
%50 = OpLabel
|
||||
OpBranch %51
|
||||
%51 = OpLabel
|
||||
OpLoopMerge %55 %54 None
|
||||
OpBranch %52
|
||||
%52 = OpLabel
|
||||
OpLoopMerge %56 %55 None
|
||||
OpBranch %53
|
||||
OpBranchConditional %true %53 %55
|
||||
%53 = OpLabel
|
||||
OpReturnValue %true
|
||||
%54 = OpLabel
|
||||
OpBranch %55
|
||||
OpBranch %51
|
||||
%55 = OpLabel
|
||||
OpBranchConditional %true %52 %56
|
||||
%56 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%inside_infinite_while_loop_b = OpFunction %bool None %35
|
||||
%after_do_loop_b = OpFunction %bool None %28
|
||||
%56 = OpLabel
|
||||
OpBranch %57
|
||||
%57 = OpLabel
|
||||
OpLoopMerge %61 %60 None
|
||||
OpBranch %58
|
||||
%58 = OpLabel
|
||||
OpLoopMerge %62 %61 None
|
||||
OpBranch %59
|
||||
OpBranch %61
|
||||
%59 = OpLabel
|
||||
OpBranchConditional %true %60 %62
|
||||
OpBranch %60
|
||||
%60 = OpLabel
|
||||
OpReturnValue %true
|
||||
OpBranchConditional %true %57 %61
|
||||
%61 = OpLabel
|
||||
OpBranch %58
|
||||
%62 = OpLabel
|
||||
OpUnreachable
|
||||
OpReturnValue %true
|
||||
OpFunctionEnd
|
||||
%after_do_loop_b = OpFunction %bool None %35
|
||||
%after_while_loop_b = OpFunction %bool None %28
|
||||
%62 = OpLabel
|
||||
OpBranch %63
|
||||
%63 = OpLabel
|
||||
OpLoopMerge %67 %66 None
|
||||
OpBranch %64
|
||||
%64 = OpLabel
|
||||
OpLoopMerge %68 %67 None
|
||||
OpBranch %65
|
||||
OpBranchConditional %true %65 %67
|
||||
%65 = OpLabel
|
||||
OpBranch %68
|
||||
%66 = OpLabel
|
||||
OpBranch %67
|
||||
%66 = OpLabel
|
||||
OpBranch %63
|
||||
%67 = OpLabel
|
||||
OpBranchConditional %true %64 %68
|
||||
%68 = OpLabel
|
||||
OpReturnValue %true
|
||||
OpFunctionEnd
|
||||
%after_while_loop_b = OpFunction %bool None %35
|
||||
%69 = OpLabel
|
||||
OpBranch %70
|
||||
%main = OpFunction %v4float None %68
|
||||
%69 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%70 = OpLabel
|
||||
OpLoopMerge %74 %73 None
|
||||
OpBranch %71
|
||||
%71 = OpLabel
|
||||
OpBranchConditional %true %72 %74
|
||||
%88 = OpVariable %_ptr_Function_v4float Function
|
||||
%71 = OpFunctionCall %bool %inside_while_loop_b
|
||||
OpSelectionMerge %73 None
|
||||
OpBranchConditional %71 %72 %73
|
||||
%72 = OpLabel
|
||||
OpBranch %74
|
||||
%74 = OpFunctionCall %bool %inside_infinite_do_loop_b
|
||||
OpBranch %73
|
||||
%73 = OpLabel
|
||||
OpBranch %70
|
||||
%74 = OpLabel
|
||||
OpReturnValue %true
|
||||
OpFunctionEnd
|
||||
%switch_with_all_returns_b = OpFunction %bool None %35
|
||||
%75 = OpLabel
|
||||
%76 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%77 = OpLoad %float %76
|
||||
%78 = OpConvertFToS %int %77
|
||||
OpSelectionMerge %79 None
|
||||
OpSwitch %78 %82 1 %80 2 %81
|
||||
%75 = OpPhi %bool %false %70 %74 %72
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %75 %76 %77
|
||||
%76 = OpLabel
|
||||
%78 = OpFunctionCall %bool %inside_infinite_while_loop_b
|
||||
OpBranch %77
|
||||
%77 = OpLabel
|
||||
%79 = OpPhi %bool %false %73 %78 %76
|
||||
OpSelectionMerge %81 None
|
||||
OpBranchConditional %79 %80 %81
|
||||
%80 = OpLabel
|
||||
OpReturnValue %true
|
||||
%82 = OpFunctionCall %bool %after_do_loop_b
|
||||
OpBranch %81
|
||||
%81 = OpLabel
|
||||
OpReturnValue %false
|
||||
%82 = OpLabel
|
||||
OpReturnValue %false
|
||||
%79 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_fallthrough_b = OpFunction %bool None %35
|
||||
%83 = OpLabel
|
||||
%84 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%85 = OpLoad %float %84
|
||||
%86 = OpConvertFToS %int %85
|
||||
OpSelectionMerge %87 None
|
||||
OpSwitch %86 %90 1 %88 2 %89
|
||||
%88 = OpLabel
|
||||
OpReturnValue %true
|
||||
%89 = OpLabel
|
||||
OpBranch %90
|
||||
%83 = OpPhi %bool %false %77 %82 %80
|
||||
OpSelectionMerge %85 None
|
||||
OpBranchConditional %83 %84 %85
|
||||
%84 = OpLabel
|
||||
%86 = OpFunctionCall %bool %after_while_loop_b
|
||||
OpBranch %85
|
||||
%85 = OpLabel
|
||||
%87 = OpPhi %bool %false %81 %86 %84
|
||||
OpSelectionMerge %92 None
|
||||
OpBranchConditional %87 %90 %91
|
||||
%90 = OpLabel
|
||||
OpReturnValue %false
|
||||
%87 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_fallthrough_twice_b = OpFunction %bool None %35
|
||||
%93 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
|
||||
%96 = OpLoad %v4float %93
|
||||
OpStore %88 %96
|
||||
OpBranch %92
|
||||
%91 = OpLabel
|
||||
%92 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%93 = OpLoad %float %92
|
||||
%94 = OpConvertFToS %int %93
|
||||
OpSelectionMerge %95 None
|
||||
OpSwitch %94 %98 1 %96 2 %97
|
||||
%96 = OpLabel
|
||||
OpBranch %97
|
||||
%97 = OpLabel
|
||||
OpBranch %98
|
||||
%98 = OpLabel
|
||||
OpReturnValue %true
|
||||
%95 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_break_in_loop_b = OpFunction %bool None %35
|
||||
%99 = OpLabel
|
||||
%x = OpVariable %_ptr_Function_int Function
|
||||
%100 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%101 = OpLoad %float %100
|
||||
%102 = OpConvertFToS %int %101
|
||||
OpSelectionMerge %103 None
|
||||
OpSwitch %102 %105 1 %104
|
||||
%104 = OpLabel
|
||||
OpStore %x %int_0
|
||||
OpBranch %109
|
||||
%109 = OpLabel
|
||||
OpLoopMerge %113 %112 None
|
||||
OpBranch %110
|
||||
%110 = OpLabel
|
||||
%114 = OpLoad %int %x
|
||||
%116 = OpSLessThanEqual %bool %114 %int_10
|
||||
OpBranchConditional %116 %111 %113
|
||||
%111 = OpLabel
|
||||
OpBranch %113
|
||||
%112 = OpLabel
|
||||
%118 = OpLoad %int %x
|
||||
%119 = OpIAdd %int %118 %int_1
|
||||
OpStore %x %119
|
||||
OpBranch %109
|
||||
%113 = OpLabel
|
||||
OpBranch %105
|
||||
%105 = OpLabel
|
||||
OpReturnValue %true
|
||||
%103 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_continue_in_loop_b = OpFunction %bool None %35
|
||||
%120 = OpLabel
|
||||
%x_0 = OpVariable %_ptr_Function_int Function
|
||||
%121 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%122 = OpLoad %float %121
|
||||
%123 = OpConvertFToS %int %122
|
||||
OpSelectionMerge %124 None
|
||||
OpSwitch %123 %126 1 %125
|
||||
%125 = OpLabel
|
||||
OpStore %x_0 %int_0
|
||||
OpBranch %128
|
||||
%128 = OpLabel
|
||||
OpLoopMerge %132 %131 None
|
||||
OpBranch %129
|
||||
%129 = OpLabel
|
||||
%133 = OpLoad %int %x_0
|
||||
%134 = OpSLessThanEqual %bool %133 %int_10
|
||||
OpBranchConditional %134 %130 %132
|
||||
%130 = OpLabel
|
||||
OpBranch %131
|
||||
%131 = OpLabel
|
||||
%135 = OpLoad %int %x_0
|
||||
%136 = OpIAdd %int %135 %int_1
|
||||
OpStore %x_0 %136
|
||||
OpBranch %128
|
||||
%132 = OpLabel
|
||||
OpBranch %126
|
||||
%126 = OpLabel
|
||||
OpReturnValue %true
|
||||
%124 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_if_that_returns_b = OpFunction %bool None %35
|
||||
%137 = OpLabel
|
||||
%138 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%139 = OpLoad %float %138
|
||||
%140 = OpConvertFToS %int %139
|
||||
OpSelectionMerge %141 None
|
||||
OpSwitch %140 %143 1 %142
|
||||
%142 = OpLabel
|
||||
%144 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%145 = OpLoad %float %144
|
||||
%146 = OpFOrdEqual %bool %145 %float_123
|
||||
OpSelectionMerge %149 None
|
||||
OpBranchConditional %146 %147 %148
|
||||
%147 = OpLabel
|
||||
OpReturnValue %false
|
||||
%148 = OpLabel
|
||||
OpReturnValue %true
|
||||
%149 = OpLabel
|
||||
OpBranch %143
|
||||
%143 = OpLabel
|
||||
OpReturnValue %true
|
||||
%141 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%switch_with_one_sided_if_then_fallthrough_b = OpFunction %bool None %35
|
||||
%150 = OpLabel
|
||||
%151 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%152 = OpLoad %float %151
|
||||
%153 = OpConvertFToS %int %152
|
||||
OpSelectionMerge %154 None
|
||||
OpSwitch %153 %156 1 %155
|
||||
%155 = OpLabel
|
||||
%157 = OpAccessChain %_ptr_Uniform_float %22 %int_2
|
||||
%158 = OpLoad %float %157
|
||||
%159 = OpFOrdEqual %bool %158 %float_123
|
||||
OpSelectionMerge %161 None
|
||||
OpBranchConditional %159 %160 %161
|
||||
%160 = OpLabel
|
||||
OpReturnValue %false
|
||||
%161 = OpLabel
|
||||
OpBranch %156
|
||||
%156 = OpLabel
|
||||
OpReturnValue %true
|
||||
%154 = OpLabel
|
||||
OpUnreachable
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %v4float None %162
|
||||
%163 = OpFunctionParameter %_ptr_Function_v2float
|
||||
%164 = OpLabel
|
||||
%210 = OpVariable %_ptr_Function_v4float Function
|
||||
%165 = OpFunctionCall %bool %inside_while_loop_b
|
||||
OpSelectionMerge %167 None
|
||||
OpBranchConditional %165 %166 %167
|
||||
%166 = OpLabel
|
||||
%168 = OpFunctionCall %bool %inside_infinite_do_loop_b
|
||||
OpBranch %167
|
||||
%167 = OpLabel
|
||||
%169 = OpPhi %bool %false %164 %168 %166
|
||||
OpSelectionMerge %171 None
|
||||
OpBranchConditional %169 %170 %171
|
||||
%170 = OpLabel
|
||||
%172 = OpFunctionCall %bool %inside_infinite_while_loop_b
|
||||
OpBranch %171
|
||||
%171 = OpLabel
|
||||
%173 = OpPhi %bool %false %167 %172 %170
|
||||
OpSelectionMerge %175 None
|
||||
OpBranchConditional %173 %174 %175
|
||||
%174 = OpLabel
|
||||
%176 = OpFunctionCall %bool %after_do_loop_b
|
||||
OpBranch %175
|
||||
%175 = OpLabel
|
||||
%177 = OpPhi %bool %false %171 %176 %174
|
||||
OpSelectionMerge %179 None
|
||||
OpBranchConditional %177 %178 %179
|
||||
%178 = OpLabel
|
||||
%180 = OpFunctionCall %bool %after_while_loop_b
|
||||
OpBranch %179
|
||||
%179 = OpLabel
|
||||
%181 = OpPhi %bool %false %175 %180 %178
|
||||
OpSelectionMerge %183 None
|
||||
OpBranchConditional %181 %182 %183
|
||||
%182 = OpLabel
|
||||
%184 = OpFunctionCall %bool %switch_with_all_returns_b
|
||||
OpBranch %183
|
||||
%183 = OpLabel
|
||||
%185 = OpPhi %bool %false %179 %184 %182
|
||||
OpSelectionMerge %187 None
|
||||
OpBranchConditional %185 %186 %187
|
||||
%186 = OpLabel
|
||||
%188 = OpFunctionCall %bool %switch_fallthrough_b
|
||||
OpBranch %187
|
||||
%187 = OpLabel
|
||||
%189 = OpPhi %bool %false %183 %188 %186
|
||||
OpSelectionMerge %191 None
|
||||
OpBranchConditional %189 %190 %191
|
||||
%190 = OpLabel
|
||||
%192 = OpFunctionCall %bool %switch_fallthrough_twice_b
|
||||
OpBranch %191
|
||||
%191 = OpLabel
|
||||
%193 = OpPhi %bool %false %187 %192 %190
|
||||
OpSelectionMerge %195 None
|
||||
OpBranchConditional %193 %194 %195
|
||||
%194 = OpLabel
|
||||
%196 = OpFunctionCall %bool %switch_with_break_in_loop_b
|
||||
OpBranch %195
|
||||
%195 = OpLabel
|
||||
%197 = OpPhi %bool %false %191 %196 %194
|
||||
OpSelectionMerge %199 None
|
||||
OpBranchConditional %197 %198 %199
|
||||
%198 = OpLabel
|
||||
%200 = OpFunctionCall %bool %switch_with_continue_in_loop_b
|
||||
OpBranch %199
|
||||
%199 = OpLabel
|
||||
%201 = OpPhi %bool %false %195 %200 %198
|
||||
OpSelectionMerge %203 None
|
||||
OpBranchConditional %201 %202 %203
|
||||
%202 = OpLabel
|
||||
%204 = OpFunctionCall %bool %switch_with_if_that_returns_b
|
||||
OpBranch %203
|
||||
%203 = OpLabel
|
||||
%205 = OpPhi %bool %false %199 %204 %202
|
||||
OpSelectionMerge %207 None
|
||||
OpBranchConditional %205 %206 %207
|
||||
%206 = OpLabel
|
||||
%208 = OpFunctionCall %bool %switch_with_one_sided_if_then_fallthrough_b
|
||||
OpBranch %207
|
||||
%207 = OpLabel
|
||||
%209 = OpPhi %bool %false %203 %208 %206
|
||||
OpSelectionMerge %214 None
|
||||
OpBranchConditional %209 %212 %213
|
||||
%212 = OpLabel
|
||||
%215 = OpAccessChain %_ptr_Uniform_v4float %22 %int_0
|
||||
%217 = OpLoad %v4float %215
|
||||
OpStore %210 %217
|
||||
OpBranch %214
|
||||
%213 = OpLabel
|
||||
%218 = OpAccessChain %_ptr_Uniform_v4float %22 %int_1
|
||||
%219 = OpLoad %v4float %218
|
||||
OpStore %210 %219
|
||||
OpBranch %214
|
||||
%214 = OpLabel
|
||||
%220 = OpLoad %v4float %210
|
||||
OpReturnValue %220
|
||||
%97 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
|
||||
%99 = OpLoad %v4float %97
|
||||
OpStore %88 %99
|
||||
OpBranch %92
|
||||
%92 = OpLabel
|
||||
%100 = OpLoad %v4float %88
|
||||
OpReturnValue %100
|
||||
OpFunctionEnd
|
||||
|
@ -31,69 +31,6 @@ bool after_while_loop_b() {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool switch_with_all_returns_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return false;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_twice_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_break_in_loop_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_continue_in_loop_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_if_that_returns_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
if (unknownInput == 123.0) return false; else return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_one_sided_if_then_fallthrough_b() {
|
||||
switch (int(unknownInput)) {
|
||||
case 1:
|
||||
if (unknownInput == 123.0) return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
vec4 main() {
|
||||
return ((((((((((inside_while_loop_b() && inside_infinite_do_loop_b()) && inside_infinite_while_loop_b()) && after_do_loop_b()) && after_while_loop_b()) && switch_with_all_returns_b()) && switch_fallthrough_b()) && switch_fallthrough_twice_b()) && switch_with_break_in_loop_b()) && switch_with_continue_in_loop_b()) && switch_with_if_that_returns_b()) && switch_with_one_sided_if_then_fallthrough_b() ? colorGreen : colorRed;
|
||||
return (((inside_while_loop_b() && inside_infinite_do_loop_b()) && inside_infinite_while_loop_b()) && after_do_loop_b()) && after_while_loop_b() ? colorGreen : colorRed;
|
||||
}
|
||||
|
@ -39,72 +39,9 @@ bool after_while_loop_b() {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool switch_with_all_returns_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return false;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
bool switch_fallthrough_twice_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
case 2:
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_break_in_loop_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_continue_in_loop_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
for (int x = 0;x <= 10; ++x) {
|
||||
continue;
|
||||
}
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_if_that_returns_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
if (_uniforms.unknownInput == 123.0h) return false; else return true;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool switch_with_one_sided_if_then_fallthrough_b(Uniforms _uniforms) {
|
||||
switch (int(_uniforms.unknownInput)) {
|
||||
case 1:
|
||||
if (_uniforms.unknownInput == 123.0h) return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
fragment Outputs fragmentMain(Inputs _in [[stage_in]], constant Uniforms& _uniforms [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
|
||||
Outputs _out;
|
||||
(void)_out;
|
||||
_out.sk_FragColor = ((((((((((inside_while_loop_b(_uniforms) && inside_infinite_do_loop_b()) && inside_infinite_while_loop_b()) && after_do_loop_b()) && after_while_loop_b()) && switch_with_all_returns_b(_uniforms)) && switch_fallthrough_b(_uniforms)) && switch_fallthrough_twice_b(_uniforms)) && switch_with_break_in_loop_b(_uniforms)) && switch_with_continue_in_loop_b(_uniforms)) && switch_with_if_that_returns_b(_uniforms)) && switch_with_one_sided_if_then_fallthrough_b(_uniforms) ? _uniforms.colorGreen : _uniforms.colorRed;
|
||||
_out.sk_FragColor = (((inside_while_loop_b(_uniforms) && inside_infinite_do_loop_b()) && inside_infinite_while_loop_b()) && after_do_loop_b()) && after_while_loop_b() ? _uniforms.colorGreen : _uniforms.colorRed;
|
||||
return _out;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user