[InstCombine] Signed saturation patterns
[llvm-core.git] / test / ExecutionEngine / OrcMCJIT / test-arith.ll
blobc4331bf7327256f35f6fc4ff7a727ed3a60eea70
1 ; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
3 define i32 @main() {
4         %A = add i8 0, 12               ; <i8> [#uses=1]
5         %B = sub i8 %A, 1               ; <i8> [#uses=2]
6         %C = mul i8 %B, %B              ; <i8> [#uses=2]
7         %D = sdiv i8 %C, %C             ; <i8> [#uses=2]
8         %E = srem i8 %D, %D             ; <i8> [#uses=0]
9         %F = udiv i8 5, 6               ; <i8> [#uses=0]
10         %G = urem i8 6, 5               ; <i8> [#uses=0]
11         %A.upgrd.1 = add i16 0, 12              ; <i16> [#uses=1]
12         %B.upgrd.2 = sub i16 %A.upgrd.1, 1              ; <i16> [#uses=2]
13         %C.upgrd.3 = mul i16 %B.upgrd.2, %B.upgrd.2             ; <i16> [#uses=2]
14         %D.upgrd.4 = sdiv i16 %C.upgrd.3, %C.upgrd.3            ; <i16> [#uses=2]
15         %E.upgrd.5 = srem i16 %D.upgrd.4, %D.upgrd.4            ; <i16> [#uses=0]
16         %F.upgrd.6 = udiv i16 5, 6              ; <i16> [#uses=0]
17         %G.upgrd.7 = urem i32 6, 5              ; <i32> [#uses=0]
18         %A.upgrd.8 = add i32 0, 12              ; <i32> [#uses=1]
19         %B.upgrd.9 = sub i32 %A.upgrd.8, 1              ; <i32> [#uses=2]
20         %C.upgrd.10 = mul i32 %B.upgrd.9, %B.upgrd.9            ; <i32> [#uses=2]
21         %D.upgrd.11 = sdiv i32 %C.upgrd.10, %C.upgrd.10         ; <i32> [#uses=2]
22         %E.upgrd.12 = srem i32 %D.upgrd.11, %D.upgrd.11         ; <i32> [#uses=0]
23         %F.upgrd.13 = udiv i32 5, 6             ; <i32> [#uses=0]
24         %G1 = urem i32 6, 5             ; <i32> [#uses=0]
25         %A.upgrd.14 = add i64 0, 12             ; <i64> [#uses=1]
26         %B.upgrd.15 = sub i64 %A.upgrd.14, 1            ; <i64> [#uses=2]
27         %C.upgrd.16 = mul i64 %B.upgrd.15, %B.upgrd.15          ; <i64> [#uses=2]
28         %D.upgrd.17 = sdiv i64 %C.upgrd.16, %C.upgrd.16         ; <i64> [#uses=2]
29         %E.upgrd.18 = srem i64 %D.upgrd.17, %D.upgrd.17         ; <i64> [#uses=0]
30         %F.upgrd.19 = udiv i64 5, 6             ; <i64> [#uses=0]
31         %G.upgrd.20 = urem i64 6, 5             ; <i64> [#uses=0]
32         ret i32 0