PrelRules: Don't break let/app invariant in shiftRule

Previously shiftRule would rewrite as invalid shift like
```
let x = I# (uncheckedIShiftL# n 80)
in ...
```
to
```
let x = I# (error "invalid shift")
in ...
```
However, this breaks the let/app invariant as `error` is not
okay-for-speculation. There isn't an easy way to avoid this so let's not
try. Instead we just take advantage of the undefined nature of invalid
shifts and return zero.

Fixes #16742.

(cherry picked from commit 0bd3b9dd)
18 jobs for !1211 with wip/backport-T16742 in 285 minutes and 28 seconds (queued for 3 seconds)
detached
Status Job ID Name Coverage
  Lint
passed #103807
lint
ghc-linters

00:00:14

passed #103808
lint
lint-submods-mr

00:00:14

 
  Build
failed #103811
x86_64-linux allowed to fail
release-x86_64-linux-deb9-dwarf

01:27:26

passed #103809
x86_64-linux
validate-x86_64-linux-deb8-hadrian

01:56:57

passed #103810
x86_64-linux
validate-x86_64-linux-deb9-debug

00:46:09

 
  Full Build
failed #103813
aarch64-linux allowed to fail
validate-aarch64-linux-deb9

00:59:33

passed #103814
x86_64-linux
validate-i386-linux-deb9

01:26:27

passed #103812
x86_64-darwin
validate-x86_64-darwin

00:57:27

passed #103815
x86_64-linux
validate-x86_64-linux-deb9

01:30:21

failed #103817
x86_64-linux allowed to fail
validate-x86_64-linux-deb9-integer-simple

00:36:22

failed #103816
x86_64-linux allowed to fail
validate-x86_64-linux-deb9-llvm

01:57:02

passed #103818
x86_64-linux
validate-x86_64-linux-deb9-unreg

02:47:47

passed #103819
x86_64-linux
validate-x86_64-linux-fedora27

01:32:23

failed #103821
x86_64-windows allowed to fail
validate-x86_64-windows

02:20:59

failed #103820
x86_64-windows allowed to fail
validate-x86_64-windows-hadrian

00:12:32

 
  Cleanup
passed #103823
x86_64-darwin
cleanup-darwin

00:00:04

passed #103822
x86_64-windows
cleanup-windows

00:00:29

 
  Hackage
manual #103824
x86_64-linux allowed to fail manual
hackage
 
Name Stage Failure
failed
validate-aarch64-linux-deb9 Full Build
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
WARNING: ghc-*.tar.xz: no matching files
WARNING: junit.xml: no matching files
ERROR: No files to upload
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
validate-x86_64-linux-deb9-llvm Full Build
make[1]: Leaving directory '/builds/ghc/ghc/testsuite/tests'
Makefile:224: recipe for target 'test' failed
make: *** [test] Error 2
Running after script...
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
junit.xml: found 1 matching files
Uploading artifacts to coordinator... ok
id=103816 responseStatus=201 Created token=8S1FryMF
ERROR: Job failed: exit code 1
failed
validate-x86_64-windows-hadrian Full Build
   Speed :            93310056 Bytes/sec.
Speed : 5339.244 MegaBytes/min.
Ended : Saturday, June 15, 2019 9:50:42 PM

Uploading artifacts...
Runtime platform arch=amd64 os=windows pid=4608 revision=1f513601 version=11.10.1
WARNING: ghc.tar.xz: no matching files
ERROR: No files to upload
ERROR: Job failed: exit status 1
failed
release-x86_64-linux-deb9-dwarf Build
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
ghc-*.tar.xz: found 1 matching files
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=103811 responseStatus=201 Created token=b4xomz6s
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=103811 responseStatus=201 Created token=b4xomz6s
ERROR: Job failed: exit code 1
failed
validate-x86_64-linux-deb9-integer-simple Full Build
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
Makefile:123: recipe for target 'all' failed
Running after script...
$ cp -Rf $HOME/.cabal cabal-cache
Uploading artifacts...
WARNING: junit.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1
failed
validate-x86_64-windows Full Build
junit.xml: found 1 matching files                  
WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=103821 responseStatus=201 Created token=iQzRTDSt
Uploading artifacts...
Runtime platform
arch=amd64 os=windows pid=4932 revision=1f513601 version=11.10.1
junit.xml: found 1 matching files

WARNING: Failed to load system CertPool:crypto/x509: system root pool is not available on Windows
Uploading artifacts to coordinator... ok
id=103821 responseStatus=201 Created token=iQzRTDSt
ERROR: Job failed: exit status 2