|  | ; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s | 
|  |  | 
|  | ; ScalarEvolution shouldn't attempt to interpret expressions which have | 
|  | ; undefined results. | 
|  |  | 
|  | define void @foo(i64 %x) { | 
|  |  | 
|  | %a = udiv i64 %x, 0 | 
|  | ; CHECK: -->  (%x /u 0) | 
|  |  | 
|  | %B = shl i64 %x, 64 | 
|  | ; CHECK: -->  %B | 
|  |  | 
|  | %b = ashr i64 %B, 64 | 
|  | ; CHECK: -->  %b | 
|  |  | 
|  | %c = lshr i64 %x, 64 | 
|  | ; CHECK: -->  %c | 
|  |  | 
|  | %d = shl i64 %x, 64 | 
|  | ; CHECK: -->  %d | 
|  |  | 
|  | %E = shl i64 %x, -1 | 
|  | ; CHECK: -->  %E | 
|  |  | 
|  | %e = ashr i64 %E, -1 | 
|  | ; CHECK: -->  %e | 
|  |  | 
|  | %f = lshr i64 %x, -1 | 
|  | ; CHECK: -->  %f | 
|  |  | 
|  | %g = shl i64 %x, -1 | 
|  | ; CHECK: -->  %g | 
|  |  | 
|  | %h = bitcast i64 undef to i64 | 
|  | ; CHECK: -->  undef | 
|  |  | 
|  | ret void | 
|  | } |