blob: b1f44460af6bd0fadc4741fca9acc84dd6bc8738 [file] [log] [blame]
Dan Gohmanddb3eaf2010-04-22 01:35:11 +00001; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s
2
3; ScalarEvolution shouldn't attempt to interpret expressions which have
4; undefined results.
5
6define void @foo(i64 %x) {
7
8 %a = udiv i64 %x, 0
9; CHECK: --> (%x /u 0)
10
11 %B = shl i64 %x, 64
12; CHECK: --> %B
13
14 %b = ashr i64 %B, 64
15; CHECK: --> %b
16
17 %c = lshr i64 %x, 64
18; CHECK: --> %c
19
20 %d = shl i64 %x, 64
21; CHECK: --> %d
22
23 %E = shl i64 %x, -1
24; CHECK: --> %E
25
26 %e = ashr i64 %E, -1
27; CHECK: --> %e
28
29 %f = lshr i64 %x, -1
30; CHECK: --> %f
31
32 %g = shl i64 %x, -1
33; CHECK: --> %g
34
35 %h = bitcast i64 undef to i64
36; CHECK: --> undef
37
38 ret void
39}