diff --git a/.pick_status.json b/.pick_status.json index ddc5070246a..c564cf11bbc 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3444,7 +3444,7 @@ "description": "gallivm: don't optimize fadd(a, 0.0) with signed zero preserve", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "540e84bedbfbc884ce982640f7da9319441a4aa0", "notes": null diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c index b5aea1ab4ed..399cc0ff353 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c @@ -413,10 +413,12 @@ lp_build_add(struct lp_build_context *bld, assert(lp_check_value(type, a)); assert(lp_check_value(type, b)); - if (a == bld->zero) - return b; - if (b == bld->zero) - return a; + if (!type.floating || !type.signed_zero_preserve) { + if (a == bld->zero) + return b; + if (b == bld->zero) + return a; + } if (a == bld->undef || b == bld->undef) return bld->undef; diff --git a/src/virtio/ci/venus-fails.txt b/src/virtio/ci/venus-fails.txt index 6acbe47e9c5..778e18efdfa 100644 --- a/src/virtio/ci/venus-fails.txt +++ b/src/virtio/ci/venus-fails.txt @@ -29,3 +29,6 @@ dEQP-VK.mesh_shader.ext.smoke.monolithic.depth_only_points_position_components,F dEQP-VK.mesh_shader.ext.smoke.monolithic.depth_only_triangles_position_components,Fail dEQP-VK.mesh_shader.ext.smoke.optimized_lib.depth_only_points_position_components,Fail dEQP-VK.mesh_shader.ext.smoke.optimized_lib.depth_only_triangles_position_components,Fail + +# CTS bug +dEQP-VK.spirv_assembly.instruction.graphics.float_controls2.fp32.input_args.reflect_testedWithout_NSZ_arg1_minusZero_arg2_one_res_minusZero_deco_vert,Fail