xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/2013-01-09-DAGCombineBug.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-apple-macosx10.5.0 < %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; rdar://12968664
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine void @t() nounwind uwtable ssp {
6*9880d681SAndroid Build Coastguard Worker  br label %4
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker; <label>:1                                       ; preds = %4, %2
9*9880d681SAndroid Build Coastguard Worker  ret void
10*9880d681SAndroid Build Coastguard Worker
11*9880d681SAndroid Build Coastguard Worker; <label>:2                                       ; preds = %6, %5, %3, %2
12*9880d681SAndroid Build Coastguard Worker  switch i32 undef, label %2 [
13*9880d681SAndroid Build Coastguard Worker    i32 1090573978, label %1
14*9880d681SAndroid Build Coastguard Worker    i32 1090573938, label %3
15*9880d681SAndroid Build Coastguard Worker    i32 1090573957, label %5
16*9880d681SAndroid Build Coastguard Worker  ]
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker; <label>:3                                       ; preds = %4, %2
19*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %2, label %4
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker; <label>:4                                       ; preds = %6, %5, %3, %0
22*9880d681SAndroid Build Coastguard Worker  switch i32 undef, label %11 [
23*9880d681SAndroid Build Coastguard Worker    i32 1090573938, label %3
24*9880d681SAndroid Build Coastguard Worker    i32 1090573957, label %5
25*9880d681SAndroid Build Coastguard Worker    i32 1090573978, label %1
26*9880d681SAndroid Build Coastguard Worker    i32 165205179, label %6
27*9880d681SAndroid Build Coastguard Worker  ]
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker; <label>:5                                       ; preds = %4, %2
30*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %2, label %4
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Worker; <label>:6                                       ; preds = %4
33*9880d681SAndroid Build Coastguard Worker  %7 = icmp eq i32 undef, 590901838
34*9880d681SAndroid Build Coastguard Worker  %8 = or i1 false, %7
35*9880d681SAndroid Build Coastguard Worker  %9 = or i1 true, %8
36*9880d681SAndroid Build Coastguard Worker  %10 = xor i1 %8, %9
37*9880d681SAndroid Build Coastguard Worker  br i1 %10, label %4, label %2
38*9880d681SAndroid Build Coastguard Worker
39*9880d681SAndroid Build Coastguard Worker; <label>:11                                      ; preds = %11, %4
40*9880d681SAndroid Build Coastguard Worker  br label %11
41*9880d681SAndroid Build Coastguard Worker}
42*9880d681SAndroid Build Coastguard Worker
43*9880d681SAndroid Build Coastguard Worker; PR15608
44*9880d681SAndroid Build Coastguard Worker@global = external constant [2 x i8]
45*9880d681SAndroid Build Coastguard Worker
46*9880d681SAndroid Build Coastguard Workerdefine void @PR15608() {
47*9880d681SAndroid Build Coastguard Workerbb:
48*9880d681SAndroid Build Coastguard Worker  br label %bb3
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerbb1:                                              ; No predecessors!
51*9880d681SAndroid Build Coastguard Worker  br i1 icmp ult (i64 xor (i64 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i64), i64 1), i64 1), label %bb2, label %bb3
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Workerbb2:                                              ; preds = %bb1
54*9880d681SAndroid Build Coastguard Worker  unreachable
55*9880d681SAndroid Build Coastguard Worker
56*9880d681SAndroid Build Coastguard Workerbb3:                                              ; preds = %bb1, %bb
57*9880d681SAndroid Build Coastguard Worker  br i1 xor (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1), i1 trunc (i192 lshr (i192 or (i192 and (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 -340282366920938463463374607431768211457), i192 shl (i192 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i192), i192 128)), i192 128) to i1)), label %bb7, label %bb4
58*9880d681SAndroid Build Coastguard Worker
59*9880d681SAndroid Build Coastguard Workerbb4:                                              ; preds = %bb6, %bb3
60*9880d681SAndroid Build Coastguard Worker  %tmp = phi i1 [ true, %bb6 ], [ trunc (i192 lshr (i192 or (i192 and (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 -340282366920938463463374607431768211457), i192 shl (i192 zext (i1 trunc (i192 lshr (i192 or (i192 shl (i192 zext (i64 trunc (i128 lshr (i128 trunc (i384 lshr (i384 or (i384 shl (i384 zext (i64 ptrtoint ([2 x i8]* @global to i64) to i384), i384 192), i384 425269881901436522087161771558896140289), i384 128) to i128), i128 64) to i64) to i192), i192 64), i192 1), i192 128) to i1) to i192), i192 128)), i192 128) to i1), %bb3 ]
61*9880d681SAndroid Build Coastguard Worker  br i1 false, label %bb8, label %bb5
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workerbb5:                                              ; preds = %bb4
64*9880d681SAndroid Build Coastguard Worker  br i1 %tmp, label %bb8, label %bb6
65*9880d681SAndroid Build Coastguard Worker
66*9880d681SAndroid Build Coastguard Workerbb6:                                              ; preds = %bb5
67*9880d681SAndroid Build Coastguard Worker  br i1 false, label %bb8, label %bb4
68*9880d681SAndroid Build Coastguard Worker
69*9880d681SAndroid Build Coastguard Workerbb7:                                              ; preds = %bb3
70*9880d681SAndroid Build Coastguard Worker  unreachable
71*9880d681SAndroid Build Coastguard Worker
72*9880d681SAndroid Build Coastguard Workerbb8:                                              ; preds = %bb6, %bb5, %bb4
73*9880d681SAndroid Build Coastguard Worker  unreachable
74*9880d681SAndroid Build Coastguard Worker}
75