diff options
author | Duncan Sands <baldrick@free.fr> | 2009-11-20 10:45:10 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2009-11-20 10:45:10 +0000 |
commit | c088ae8b84bfcdefb57efafb022430312bddf638 (patch) | |
tree | 2c4e186b664fff021e6fca692ba86cae25cdb5b2 /test | |
parent | 5da15364b9aa63161678252e49a6c475d619a81e (diff) | |
download | llvm-c088ae8b84bfcdefb57efafb022430312bddf638.tar.gz llvm-c088ae8b84bfcdefb57efafb022430312bddf638.tar.bz2 llvm-c088ae8b84bfcdefb57efafb022430312bddf638.tar.xz |
Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048),
which was an expensive checks failure due to a bug in the checking. This
patch in essence reverts the original fix for PR3393, and refixes it by a
tweak to the way expensive checking is done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89454 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Generic/2009-11-20-NewNode.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/2009-11-20-NewNode.ll b/test/CodeGen/Generic/2009-11-20-NewNode.ll new file mode 100644 index 0000000000..890f5c1f81 --- /dev/null +++ b/test/CodeGen/Generic/2009-11-20-NewNode.ll @@ -0,0 +1,37 @@ +; RUN: llc -march=msp430 %s +; RUN: llc -march=pic16 %s +; PR5558 + +define i64 @_strtoll_r(i16 %base) nounwind { +entry: + br i1 undef, label %if.then, label %if.end27 + +if.then: ; preds = %do.end + br label %if.end27 + +if.end27: ; preds = %if.then, %do.end + %cond66 = select i1 undef, i64 -9223372036854775808, i64 9223372036854775807 ; <i64> [#uses=3] + %conv69 = sext i16 %base to i64 ; <i64> [#uses=1] + %div = udiv i64 %cond66, %conv69 ; <i64> [#uses=1] + br label %for.cond + +for.cond: ; preds = %if.end116, %if.end27 + br i1 undef, label %if.then152, label %if.then93 + +if.then93: ; preds = %for.cond + br i1 undef, label %if.end116, label %if.then152 + +if.end116: ; preds = %if.then93 + %cmp123 = icmp ugt i64 undef, %div ; <i1> [#uses=1] + %or.cond = or i1 undef, %cmp123 ; <i1> [#uses=0] + br label %for.cond + +if.then152: ; preds = %if.then93, %for.cond + br i1 undef, label %if.end182, label %if.then172 + +if.then172: ; preds = %if.then152 + ret i64 %cond66 + +if.end182: ; preds = %if.then152 + ret i64 %cond66 +} |