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)
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 | ||
|
||||
failed
|
validate-x86_64-linux-deb9-llvm | Full Build | ||
|
||||
failed
|
validate-x86_64-windows-hadrian | Full Build | ||
|
||||
failed
|
release-x86_64-linux-deb9-dwarf | Build | ||
|
||||
failed
|
validate-x86_64-linux-deb9-integer-simple | Full Build | ||
|
||||
failed
|
validate-x86_64-windows | Full Build | ||
|