llvm/test/Integer/a33.ll
Reid Spencer 5957d8ffd8 Fix incorrect test cases for srem. The definition of srem is a remainder so
that the sign of the result follows the sign of the divisor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35301 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 21:55:26 +00:00

27 lines
932 B
LLVM

; RUN: llvm-as %s -o - | llvm-dis > %t.ll
; RUN: diff %t.ll %s.out
; test 33 bits
;
@b = constant i33 add(i33 8589934591, i33 1)
@c = constant i33 add(i33 8589934591, i33 8589934591)
@d = constant i33 add(i33 8589934584, i33 8)
@e = constant i33 sub(i33 0 , i33 1)
@f = constant i33 sub(i33 0 , i33 8589934591)
@g = constant i33 sub(i33 2 , i33 8589934591)
@h = constant i33 shl(i33 1 , i33 33)
@i = constant i33 shl(i33 1 , i33 32)
@j = constant i33 lshr(i33 8589934591 , i33 32)
@l = constant i33 ashr(i33 8589934591 , i33 32)
@n = constant i33 mul(i33 8589934591, i33 2)
@q = constant i33 sdiv(i33 -1, i33 4294967295)
@r = constant i33 udiv(i33 -1, i33 4294967295)
@s = constant i33 srem(i33 1, i33 8589934590)
@t = constant i33 urem(i33 8589934591,i33 -1)
@o = constant i33 trunc( i34 8589934592 to i33 )
@p = constant i33 trunc( i34 8589934591 to i33 )
@u = constant i33 srem(i33 -1, i33 17)