Correctly fold divide-by-constant, even when faced with overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47287 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky
2008-02-18 22:48:05 +00:00
parent b00ee21f21
commit e0cfecf47d
3 changed files with 50 additions and 2 deletions

View File

@@ -0,0 +1,14 @@
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i.* 0} | count 2
; PR2048
define i32 @i(i32 %a) {
%tmp1 = sdiv i32 %a, -1431655765
%tmp2 = sdiv i32 %tmp1, 3
ret i32 %tmp2
}
define i8 @j(i8 %a) {
%tmp1 = sdiv i8 %a, 64
%tmp2 = sdiv i8 %tmp1, 3
ret i8 %tmp2
}