1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/test/CodeGen/CBackend/pr2408.ll
Dan Gohman b97c076af4 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.

llvm-svn: 53767
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
}