1; 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} 40