mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-30 15:32:52 +01:00
9cb3ba300f
ScalarEvolution::getSignedRange uses ComputeNumSignBits from ValueTracking on ashr instructions. ComputeNumSignBits can return zero, but this case was not handled correctly by the code in getSignedRange which was calling: APInt::getSignedMinValue(BitWidth).ashr(NS - 1) with NS = 0, resulting in an assertion failure in APInt::ashr. Now, we just return the conservative result (as with NS == 1). Another bug found by llvm-stress. llvm-svn: 185955
19 lines
545 B
LLVM
19 lines
545 B
LLVM
; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s
|
|
target triple = "powerpc64-unknown-linux-gnu"
|
|
|
|
define void @autogen_SD30723(i32) {
|
|
BB:
|
|
br label %CF80
|
|
|
|
CF80: ; preds = %CF80, %BB
|
|
%B = ashr i32 %0, -1
|
|
br i1 undef, label %CF80, label %CF84
|
|
|
|
CF84: ; preds = %CF84, %CF80
|
|
%Cmp62 = icmp sge i32 undef, %B
|
|
br i1 %Cmp62, label %CF84, label %CF85
|
|
|
|
CF85: ; preds = %CF85, %CF84
|
|
br label %CF85
|
|
}
|