llvm/test/CodeGen/CBackend/pr2408.ll
Dan Gohman 5a11abaf2c In the CBackend, use casts to force integer add, subtract, and
multiply to be done as unsigned, so that they have well defined
behavior on overflow. This fixes PR2408.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53767 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-18 18:43:12 +00:00

13 lines
435 B
LLVM

; RUN: llvm-as < %s | llc -march=c | grep {\\* ((unsigned int )}
; PR2408
define i32 @a(i32 %a) {
entry:
%shr = ashr i32 %a, 0 ; <i32> [#uses=1]
%shr2 = ashr i32 2, 0 ; <i32> [#uses=1]
%mul = mul i32 %shr, %shr2 ; <i32> [#uses=1]
%shr4 = ashr i32 2, 0 ; <i32> [#uses=1]
%div = sdiv i32 %mul, %shr4 ; <i32> [#uses=1]
ret i32 %div
}