2010-09-17 01:42:36 +08:00
|
|
|
; RUN: opt < %s -correlated-propagation
|
|
|
|
|
|
|
|
; PR8161
|
|
|
|
define void @test1() nounwind ssp {
|
|
|
|
entry:
|
|
|
|
br label %for.end
|
|
|
|
|
|
|
|
for.cond.us.us: ; preds = %for.cond.us.us
|
|
|
|
%cmp6.i.us.us = icmp sgt i32 1, 0
|
|
|
|
%lor.ext.i.us.us = zext i1 %cmp6.i.us.us to i32
|
|
|
|
%lor.ext.add.i.us.us = select i1 %cmp6.i.us.us, i32 %lor.ext.i.us.us, i32 undef
|
|
|
|
%conv.i.us.us = trunc i32 %lor.ext.add.i.us.us to i16
|
|
|
|
%sext.us.us = shl i16 %conv.i.us.us, 8
|
|
|
|
%conv6.us.us = ashr i16 %sext.us.us, 8
|
|
|
|
%and.us.us = and i16 %conv6.us.us, %and.us.us
|
|
|
|
br i1 false, label %for.end, label %for.cond.us.us
|
|
|
|
|
|
|
|
for.end: ; preds = %for.cond.us, %for.cond.us.us, %entry
|
|
|
|
ret void
|
|
|
|
}
|
2010-12-15 08:55:35 +08:00
|
|
|
|
|
|
|
; PR 8790
|
|
|
|
define void @test2() nounwind ssp {
|
|
|
|
entry:
|
|
|
|
br label %func_29.exit
|
|
|
|
|
|
|
|
sdf.exit.i:
|
|
|
|
%l_44.1.mux.i = select i1 %tobool5.not.i, i8 %l_44.1.mux.i, i8 1
|
|
|
|
br label %srf.exit.i
|
|
|
|
|
|
|
|
srf.exit.i:
|
|
|
|
%tobool5.not.i = icmp ne i8 undef, 0
|
|
|
|
br i1 %tobool5.not.i, label %sdf.exit.i, label %func_29.exit
|
|
|
|
|
|
|
|
func_29.exit:
|
|
|
|
ret void
|
|
|
|
}
|
2012-09-28 18:42:50 +08:00
|
|
|
|
|
|
|
; PR13972
|
|
|
|
define void @test3() nounwind {
|
|
|
|
for.body:
|
|
|
|
br label %return
|
|
|
|
|
|
|
|
for.cond.i: ; preds = %if.else.i, %for.body.i
|
|
|
|
%e.2.i = phi i32 [ %e.2.i, %if.else.i ], [ -8, %for.body.i ]
|
|
|
|
br i1 undef, label %return, label %for.body.i
|
|
|
|
|
|
|
|
for.body.i: ; preds = %for.cond.i
|
|
|
|
switch i32 %e.2.i, label %for.cond3.i [
|
|
|
|
i32 -3, label %if.else.i
|
|
|
|
i32 0, label %for.cond.i
|
|
|
|
]
|
|
|
|
|
|
|
|
for.cond3.i: ; preds = %for.cond3.i, %for.body.i
|
|
|
|
br label %for.cond3.i
|
|
|
|
|
|
|
|
if.else.i: ; preds = %for.body.i
|
|
|
|
br label %for.cond.i
|
|
|
|
|
|
|
|
return: ; preds = %for.cond.i, %for.body
|
|
|
|
ret void
|
|
|
|
}
|
2016-08-12 23:08:15 +08:00
|
|
|
|
|
|
|
define i1 @test4(i32 %int) {
|
|
|
|
%a0 = icmp ult i32 %int, 100
|
|
|
|
%a1 = and i1 %a0, %a0
|
|
|
|
%a2 = and i1 %a1, %a1
|
|
|
|
%a3 = and i1 %a2, %a2
|
|
|
|
%a4 = and i1 %a3, %a3
|
|
|
|
%a5 = and i1 %a4, %a4
|
|
|
|
%a6 = and i1 %a5, %a5
|
|
|
|
%a7 = and i1 %a6, %a6
|
|
|
|
%a8 = and i1 %a7, %a7
|
|
|
|
%a9 = and i1 %a8, %a8
|
|
|
|
%a10 = and i1 %a9, %a9
|
|
|
|
%a11 = and i1 %a10, %a10
|
|
|
|
%a12 = and i1 %a11, %a11
|
|
|
|
%a13 = and i1 %a12, %a12
|
|
|
|
%a14 = and i1 %a13, %a13
|
|
|
|
%a15 = and i1 %a14, %a14
|
|
|
|
%a16 = and i1 %a15, %a15
|
|
|
|
%a17 = and i1 %a16, %a16
|
|
|
|
%a18 = and i1 %a17, %a17
|
|
|
|
%a19 = and i1 %a18, %a18
|
|
|
|
%a20 = and i1 %a19, %a19
|
|
|
|
%a21 = and i1 %a20, %a20
|
|
|
|
%a22 = and i1 %a21, %a21
|
|
|
|
%a23 = and i1 %a22, %a22
|
|
|
|
%a24 = and i1 %a23, %a23
|
|
|
|
%a25 = and i1 %a24, %a24
|
|
|
|
%a26 = and i1 %a25, %a25
|
|
|
|
%a27 = and i1 %a26, %a26
|
|
|
|
%a28 = and i1 %a27, %a27
|
|
|
|
%a29 = and i1 %a28, %a28
|
|
|
|
%a30 = and i1 %a29, %a29
|
|
|
|
%a31 = and i1 %a30, %a30
|
|
|
|
%a32 = and i1 %a31, %a31
|
|
|
|
%a33 = and i1 %a32, %a32
|
|
|
|
%a34 = and i1 %a33, %a33
|
|
|
|
%a35 = and i1 %a34, %a34
|
|
|
|
%a36 = and i1 %a35, %a35
|
|
|
|
%a37 = and i1 %a36, %a36
|
|
|
|
%a38 = and i1 %a37, %a37
|
|
|
|
%a39 = and i1 %a38, %a38
|
|
|
|
%a40 = and i1 %a39, %a39
|
|
|
|
%a41 = and i1 %a40, %a40
|
|
|
|
%a42 = and i1 %a41, %a41
|
|
|
|
%a43 = and i1 %a42, %a42
|
|
|
|
%a44 = and i1 %a43, %a43
|
|
|
|
%a45 = and i1 %a44, %a44
|
|
|
|
%a46 = and i1 %a45, %a45
|
|
|
|
%a47 = and i1 %a46, %a46
|
|
|
|
%a48 = and i1 %a47, %a47
|
|
|
|
%a49 = and i1 %a48, %a48
|
|
|
|
%a50 = and i1 %a49, %a49
|
|
|
|
%a51 = and i1 %a50, %a50
|
|
|
|
%a52 = and i1 %a51, %a51
|
|
|
|
%a53 = and i1 %a52, %a52
|
|
|
|
%a54 = and i1 %a53, %a53
|
|
|
|
%a55 = and i1 %a54, %a54
|
|
|
|
%a56 = and i1 %a55, %a55
|
|
|
|
%a57 = and i1 %a56, %a56
|
|
|
|
%a58 = and i1 %a57, %a57
|
|
|
|
%a59 = and i1 %a58, %a58
|
|
|
|
%a60 = and i1 %a59, %a59
|
|
|
|
%a61 = and i1 %a60, %a60
|
|
|
|
%a62 = and i1 %a61, %a61
|
|
|
|
%a63 = and i1 %a62, %a62
|
|
|
|
%a64 = and i1 %a63, %a63
|
|
|
|
%a65 = and i1 %a64, %a64
|
|
|
|
%a66 = and i1 %a65, %a65
|
|
|
|
%a67 = and i1 %a66, %a66
|
|
|
|
%a68 = and i1 %a67, %a67
|
|
|
|
%a69 = and i1 %a68, %a68
|
|
|
|
%a70 = and i1 %a69, %a69
|
|
|
|
%a71 = and i1 %a70, %a70
|
|
|
|
%a72 = and i1 %a71, %a71
|
|
|
|
%a73 = and i1 %a72, %a72
|
|
|
|
%a74 = and i1 %a73, %a73
|
|
|
|
%a75 = and i1 %a74, %a74
|
|
|
|
%a76 = and i1 %a75, %a75
|
|
|
|
%a77 = and i1 %a76, %a76
|
|
|
|
%a78 = and i1 %a77, %a77
|
|
|
|
%a79 = and i1 %a78, %a78
|
|
|
|
%a80 = and i1 %a79, %a79
|
|
|
|
%a81 = and i1 %a80, %a80
|
|
|
|
%a82 = and i1 %a81, %a81
|
|
|
|
%a83 = and i1 %a82, %a82
|
|
|
|
%a84 = and i1 %a83, %a83
|
|
|
|
%a85 = and i1 %a84, %a84
|
|
|
|
%a86 = and i1 %a85, %a85
|
|
|
|
%a87 = and i1 %a86, %a86
|
|
|
|
%a88 = and i1 %a87, %a87
|
|
|
|
%a89 = and i1 %a88, %a88
|
|
|
|
%a90 = and i1 %a89, %a89
|
|
|
|
%a91 = and i1 %a90, %a90
|
|
|
|
%a92 = and i1 %a91, %a91
|
|
|
|
%a93 = and i1 %a92, %a92
|
|
|
|
%a94 = and i1 %a93, %a93
|
|
|
|
%a95 = and i1 %a94, %a94
|
|
|
|
%a96 = and i1 %a95, %a95
|
|
|
|
%a97 = and i1 %a96, %a96
|
|
|
|
%a98 = and i1 %a97, %a97
|
|
|
|
%a99 = and i1 %a98, %a98
|
|
|
|
%a100 = and i1 %a99, %a99
|
|
|
|
%a101 = and i1 %a100, %a100
|
|
|
|
%a102 = and i1 %a101, %a101
|
|
|
|
%a103 = and i1 %a102, %a102
|
|
|
|
%a104 = and i1 %a103, %a103
|
|
|
|
%a105 = and i1 %a104, %a104
|
|
|
|
%a106 = and i1 %a105, %a105
|
|
|
|
%a107 = and i1 %a106, %a106
|
|
|
|
%a108 = and i1 %a107, %a107
|
|
|
|
%a109 = and i1 %a108, %a108
|
|
|
|
%a110 = and i1 %a109, %a109
|
|
|
|
%a111 = and i1 %a110, %a110
|
|
|
|
%a112 = and i1 %a111, %a111
|
|
|
|
%a113 = and i1 %a112, %a112
|
|
|
|
%a114 = and i1 %a113, %a113
|
|
|
|
%a115 = and i1 %a114, %a114
|
|
|
|
%a116 = and i1 %a115, %a115
|
|
|
|
%a117 = and i1 %a116, %a116
|
|
|
|
%a118 = and i1 %a117, %a117
|
|
|
|
%a119 = and i1 %a118, %a118
|
|
|
|
%a120 = and i1 %a119, %a119
|
|
|
|
%a121 = and i1 %a120, %a120
|
|
|
|
%a122 = and i1 %a121, %a121
|
|
|
|
%a123 = and i1 %a122, %a122
|
|
|
|
%a124 = and i1 %a123, %a123
|
|
|
|
%a125 = and i1 %a124, %a124
|
|
|
|
%a126 = and i1 %a125, %a125
|
|
|
|
%a127 = and i1 %a126, %a126
|
|
|
|
%cond = and i1 %a127, %a127
|
|
|
|
br i1 %cond, label %then, label %else
|
|
|
|
|
|
|
|
then:
|
|
|
|
%result = icmp eq i32 %int, 255
|
|
|
|
ret i1 %result
|
|
|
|
|
|
|
|
else:
|
|
|
|
ret i1 false
|
|
|
|
}
|