[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / 2012-12-12-DAGCombineCrash.ll
blob8420d8871feb5a593a8e040f9c60298292ecb4e3
1 ; RUN: llc -mtriple=i686-apple-ios -mcpu=yonah < %s
2 ; rdar://12868039
4 define void @t() nounwind ssp {
5   %1 = alloca i32
6   %2 = ptrtoint i32* %1 to i32
7   br label %3
9 ; <label>:3                                       ; preds = %5, %3, %0
10   switch i32 undef, label %3 [
11     i32 611946160, label %5
12     i32 954117870, label %4
13   ]
15 ; <label>:4                                       ; preds = %3
16   ret void
18 ; <label>:5                                       ; preds = %5, %3
19   %6 = add i32 0, 148
20   %7 = and i32 %6, 48
21   %8 = add i32 %7, 0
22   %9 = or i32 %2, %8
23   %10 = xor i32 -1, %2
24   %11 = or i32 %8, %10
25   %12 = or i32 %9, %11
26   %13 = xor i32 %9, %11
27   %14 = sub i32 %12, %13
28   %15 = xor i32 2044674005, %14
29   %16 = xor i32 %15, 0
30   %17 = shl nuw nsw i32 %16, 1
31   %18 = sub i32 0, %17
32   %19 = and i32 %18, 2051242402
33   %20 = sub i32 0, %19
34   %21 = xor i32 %20, 0
35   %22 = xor i32 %21, 0
36   %23 = add i32 0, %22
37   %24 = shl i32 %23, 1
38   %25 = or i32 1, %24
39   %26 = add i32 0, %25
40   %27 = trunc i32 %26 to i8
41   %28 = xor i8 %27, 125
42   %29 = add i8 %28, -16
43   %30 = add i8 0, %29
44   store i8 %30, i8* null
45   br i1 undef, label %5, label %3