nir: Use SM5 properties to optimize shift(a@32, iand(31, b))

This is a common pattern from HLSL->SPIRV translation
and supported in HW by all current NIR backends.

vkpipeline-db results anv (SKL):
total instructions in shared programs: 6403130 -> 6402380 (-0.01%)
instructions in affected programs: 204084 -> 203334 (-0.37%)
helped: 208
HURT: 0
total cycles in shared programs: 1915629582 -> 1918198408 (0.13%)
cycles in affected programs: 1158892682 -> 1161461508 (0.22%)
helped: 107
HURT: 86
24 jobs for shift_5bit in 44 minutes and 25 seconds (queued for 1 minute and 10 seconds)
latest
Status Job ID Name Coverage
  Build+Test
passed #137092
build:make-gallium-drivers-other

00:08:54

passed #137091
build:make-gallium-drivers-radeonsi

00:05:44

passed #137090
build:make-gallium-drivers-swr

00:07:35

passed #137093
build:make-gallium-st-clover-llvm-39

00:04:41

passed #137094
build:make-gallium-st-clover-llvm-4

00:06:14

passed #137095
build:make-gallium-st-clover-llvm-5

00:04:56

passed #137096
build:make-gallium-st-clover-llvm-6

00:06:16

passed #137097
build:make-gallium-st-clover-llvm-7

00:06:43

passed #137098
build:make-gallium-st-other

00:04:24

passed #137089
build:make-loader-classic-dri

00:08:07

passed #137088
build:make-vulkan

00:04:56

passed #137084
build:meson-gallium-clover-llvm5

00:03:32

passed #137085
build:meson-gallium-clover-llvm6

00:02:28

passed #137086
build:meson-gallium-clover-llvm7

00:04:23

passed #137083
build:meson-gallium-drivers-other

00:02:57

passed #137082
build:meson-gallium-radeonsi

00:02:55

passed #137087
build:meson-gallium-st-other

00:04:21

passed #137081
build:meson-gallium-swr

00:12:49

passed #137080
build:meson-glvnd

00:03:43

passed #137079
build:meson-loader-classic-dri

00:04:52

passed #137078
build:meson-vulkan

00:01:50

passed #137100
build:scons-llvm

00:03:43

passed #137099
build:scons-nollvm

00:02:26

passed #137101
build:scons-swr

00:05:33