mesa/src
Ian Romanick ba0b248ac2 nir/algebraic: Eliminate unary op on src of integer comparison w/ zero
This helps because it enables cmod propagation to do more.

The removed patterns involving b2i will be handled by other existing
patterns after the unary operations are removed.

All Intel platforms had similar results. (Ice Lake shown)
total instructions in shared programs: 19914458 -> 19914441 (<.01%)
instructions in affected programs: 5456 -> 5439 (-0.31%)
helped: 17 / HURT: 0

total cycles in shared programs: 855302118 -> 853869766 (-0.17%)
cycles in affected programs: 327354347 -> 325921995 (-0.44%)
helped: 291 / HURT: 81

All Intel platforms had similar results. (Ice Lake shown)
Instructions in all programs: 141205979 -> 141205961 (-0.0%)
Instructions helped: 4
Instructions hurt: 3

SENDs in all programs: 7466919 -> 7466913 (-0.0%)
SENDs helped: 1

Cycles in all programs: 9133387327 -> 9133384475 (-0.0%)
Cycles helped: 3
Cycles hurt: 12

In the shader that was helped for sends, it appears that a NIR pass that
moves code out of loops was able to move 3 send operations outside a
loop after this change.  I did not investigate further.

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Acked-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15121>
2022-12-14 06:23:20 +00:00
..
amd radv/rt: Handle no-null shader flags 2022-12-13 23:30:28 +00:00
android_stub
asahi asahi: Model alignment of occlusion query indices 2022-12-10 21:51:04 -05:00
broadcom v3dv: skip some invalid tests 2022-12-14 01:59:00 +00:00
c11 c11: Remove _MTX_INITIALIZER_NP for windows 2022-11-09 04:38:28 +00:00
compiler nir/algebraic: Eliminate unary op on src of integer comparison w/ zero 2022-12-14 06:23:20 +00:00
drm-shim drm-shim: add __readlink_chk as readlink with overflow check 2022-12-08 21:05:15 +00:00
egl gallium: rename st_framebuffer_iface -> pipe_frontend_drawable, etc. 2022-12-09 13:14:03 +00:00
etnaviv tree-wide: Use __func__ instead of __FUNCTION__ in non-gallium code 2022-11-22 06:53:46 +00:00
freedreno freedreno/registers: Add some docs for PM4 events. 2022-12-12 23:29:53 +00:00
gallium gallium/pp: typedef and use pp_st_invalidate_state_func to avoid cast 2022-12-14 05:47:52 +00:00
gbm gbm: Don't look up the DRI2_FENCE extension. 2022-12-09 05:32:18 +00:00
getopt
glx glx: fix xshm check to init xshm_opcode. 2022-12-06 22:31:14 +00:00
gtest gtest: Fix maybe-uninitialized compiler warning 2022-06-29 21:02:18 +00:00
hgl
imagination pvr: Check depth/stencil attachment is tile-aligned 2022-12-08 14:53:13 +00:00
imgui
intel intel: Allow CCS_E on R11G11B10_FLOAT for TGL+ 2022-12-14 03:05:24 +00:00
loader dri: Introduce internal Mesa DRI driver loader extension. 2022-12-05 19:26:41 +00:00
mapi mapi: update gles 1.1 extention packet link 2022-11-20 15:14:01 +00:00
mesa mesa: move the _mesa_set_varying_vp_inputs call to where the state changes 2022-12-12 19:15:34 +00:00
microsoft microsoft/compiler: Fix codegen when a loop ends in a jump 2022-12-12 17:18:45 +00:00
nouveau drm-shim/nouveau: fix the shim to work with nvif ioctl. 2022-11-09 21:21:22 +00:00
panfrost panvk: Delete panvk_CmdSetDeviceMask, panvk_GetDeviceGroupPeerMemoryFeatures 2022-12-09 14:08:14 -06:00
tool pps: make pps-producer RT only on freedreno 2022-11-15 21:21:42 +00:00
util radv: Force non uniform texture sampling with NV Remix 2022-12-12 18:18:32 +00:00
virtio ci: Bump virglrenderer version 2022-12-12 15:49:08 +00:00
vulkan vk/descriptor_set_layout: Add optional destructor 2022-12-12 17:38:19 +00:00
meson.build meson: build radeon drm-shim also for r300 and r600 2022-11-16 14:37:47 +00:00