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